\1. JavaScript 程序的执行单位为行(line),也就是一行一行地执行。个别状况下,每一行就是一个语句。

\2. 如果只是申明变量而没有赋值,则该变量的值是undefined。

3.三元运算符

JavaScript 还有一个三元运算符(即该运算符须要三个运算子)?:,

也能够用于逻辑判断。

(条件) ? 表达式1 : 表达式2

下面代码中,如果“条件”为true,则返回“表达式1”的值,否则返回“表达式2”的值。

var even = (n % 2 === 0) ? true : false;

\4. break语句和continue语句都具备跳转作用,能够让代码不按既有的程序执行。

break语句用于跳出代码块或循环。

continue语句用于立刻终止本轮循环,返回循环构造的头部,开始下一轮循环。

5.JavaScript 的数据类型,共有六种

(1)数值(number):整数和小数(比方1和3.14)。

(2)字符串(string):文本(比方Hello World)。

(3)布尔值(boolean):示意真伪的两个非凡值,即true(真)和false(假)。

(4)undefined:示意“未定义”或不存在,即因为目前没有定义,所以此处临时没有任何值。

(5)null:示意空值,即此处的值为空。

(6)对象(object):各种值组成的汇合

6.JavaScript 有三种办法,能够确定一个值到底是什么类型。

(1)typeof运算符

数值、字符串、布尔值别离返回number、string、boolean。

typeof 123 // "number"

typeof '123' // "string"

typeof false // "boolean"

(2)instanceof运算符

(3)Object.prototype.toString办法

7.布尔值代表“真”和“假”两个状态。“真”用关键字true示意,“假”用关键字false示意。布尔值只有这两个值。

下列运算符会返回布尔值:

前置逻辑运算符: ! (Not)

相等运算符:===,!==,==,!=

比拟运算符:>,>=,<,<=

8.parseInt()

(1)根本用法

parseInt办法用于将字符串转为整数。

parseInt('123') // 123

如果parseInt的参数不是字符串,则会先转为字符串再转换。

parseInt(1.23) // 1

// 等同于

parseInt('1.23') // 1

如果字符串的第一个字符不能转化为数字(前面跟着数字的正负号除外),返回NaN。

parseInt('abc') // NaN

parseInt('.3') // NaN

parseInt('') // NaN

parseInt('+') // NaN

parseInt('+1') // 1

(2)进制转换

parseInt办法还能够承受第二个参数(2到36之间),示意被解析的值的进制,返回该值对应的十进制数。默认状况下,parseInt的第二个参数为10,即默认是十进制转十进制。

parseInt('1000') // 1000

// 等同于

parseInt('1000', 10) // 1000

9.parseFloat()

parseFloat办法用于将一个字符串转为浮点数。

parseFloat('3.14') // 3.14

10.isNaN()

isNaN办法能够用来判断一个值是否为NaN。

isNaN(NaN) // true

isNaN(123) // false

11.isFinite()

isFinite办法返回一个布尔值,示意某个值是否为失常的数值。

isFinite(Infinity) // false

isFinite(-Infinity) // false

isFinite(NaN) // false

isFinite(undefined) // false

isFinite(null) // true

isFinite(-1) // true

除了Infinity、-Infinity、NaN和undefined这几个值会返回false,isFinite对于其余的数值都会返回true。

12.本义

反斜杠(\)在字符串内有非凡含意,用来示意一些特殊字符,所以又称为本义符。

须要用反斜杠本义的特殊字符,次要有上面这些。

  • \0 :null(\u0000
  • \b :后退键(\u0008
  • \f :换页符(\u000C
  • \n :换行符(\u000A
  • \r :回车键(\u000D
  • \t :制表符(\u0009
  • \v :垂直制表符(\u000B
  • \' :单引号(\u0027
  • \" :双引号(\u0022
  • \\ :反斜杠(\u005C
  • 13.字符串与数组

    字符串能够被视为字符数组,因而能够应用数组的方括号运算符,用来返回某个地位的字符(地位编号从0开始)。

    var s = 'hello';s[0] // "h"s[1] // "e"s[4] // "o"// 间接对字符串应用方括号运算符'hello'[1] // "e"

14.length 属性

length属性返回字符串的长度,该属性也是无奈扭转的。

var s = 'hello';s.length // 5s.length = 3;s.length // 5s.length = 7;s.length // 5

下面代码示意字符串的length属性无奈扭转,然而不会报错。

15.对象(object)是 JavaScript 语言的外围概念,也是最重要的数据类型。

什么是对象?简略说,对象就是一组“键值对”(key-value)的汇合,是一种无序的复合数据汇合。

var obj = {  foo: 'Hello',  bar: 'World'};

16.键名

对象的所有键名都是字符串(ES6 又引入了 Symbol 值也能够作为键名),所以加不加引号都能够。下面的代码也能够写成上面这样。

var obj = {  'foo': 'Hello',  'bar': 'World'};

17.属性的读取

读取对象的属性,有两种办法,一种是应用点运算符,还有一种是应用方括号运算符。

var obj = {  p: 'Hello World'};obj.p // "Hello World"obj['p'] // "Hello World"

18.属性的赋值 #

点运算符和方括号运算符,不仅能够用来读取值,还能够用来赋值。

var obj = {};obj.foo = 'Hello';obj['bar'] = 'World';

19.属性的查看

查看一个对象自身的所有属性,能够应用Object.keys办法。

var obj = {  key1: 1,  key2: 2};Object.keys(obj);// ['key1', 'key2']

20.属性的删除:delete 命令 #

delete命令用于删除对象的属性,删除胜利后返回true

var obj = { p: 1 };Object.keys(obj) // ["p"]delete obj.p // trueobj.p // undefinedObject.keys(obj) // []

21.属性是否存在:in 运算符

in运算符用于查看对象是否蕴含某个属性(留神,查看的是键名,不是键值),如果蕴含就返回true,否则返回false。它的右边是一个字符串,示意属性名,左边是一个对象。

var obj = { p: 1 };'p' in obj // true'toString' in obj // true

in运算符的一个问题是,它不能辨认哪些属性是对象本身的,哪些属性是继承的。就像下面代码中,对象obj自身并没有toString属性,然而in运算符会返回true,因为这个属性是继承的。

这时,能够应用对象的hasOwnProperty办法判断一下,是否为对象本身的属性。

var obj = {};if ('toString' in obj) {  console.log(obj.hasOwnProperty('toString')) // false}

22.with 语句

with语句的格局如下:

with (对象) {  语句;}

``