1、JavaScript 语言将函数看作一种值,与其它值(数值、字符串、布尔值等等)地位相同。凡是可以使用值的地方,就能使用函数。比如,可以把函数赋值给变量和对象的属性,也可以当作参数传入其他函数,或者作为函数的结果返回。函数只是一个可以执行的值,此外并无特殊之处。
由于函数与其他数据类型地位平等,所以在 JavaScript 语言中又称函数为第一等公民。
将一个匿名函数赋值给变量。这时,这个匿名函数又称函数表达式。
2、函数的toString
方法返回一个字符串,内容是函数的源码。
3、数组是一种特殊的对象,对象中的方法与原则数组大部分都适用,但数组中的方法对象不一定适用。
4、“类似数组的对象”的根本特征,就是具有length
属性。只要有length
属性,就可以认为这个对象类似于数组。但是,这种length
属性不是动态值,不会随着成员的变化而变化。典型的“类似数组的对象”是函数的arguments
对象,以及大多数 DOM 元素集,还有字符串。
数组的slice
方法可以将“类似数组的对象”变成真正的数组。
var arr = Array.prototype.slice.call(arrayLike);
5、运算符中加号+ 的使用
6、自增和自减运算符,是一元运算符,只需要一个运算子。它们的作用是将运算子首先转为数值,然后加上1或者减去1。它们会修改原始变量。运算之后,变量的值发生变化,这种效应叫做运算的副作用(side effect)。自增和自减运算符是仅有的两个具有副作用的运算符,其他运算符都不会改变变量的值。
i++与++i的区别,i++是先使用后增加;++i是先增加后使用。 -- 与 ++ 同理
7、数值运算符(+
)同样使用加号,但它是一元运算符(只需要一个操作数),而加法运算符是二元运算符(需要两个操作数)。数值运算符的作用在于可以将任何值转为数值(与Number
函数的作用相同)。
8、三元条件运算符由问号(?)和冒号(:)组成,分隔三个表达式。它是 JavaScript 语言唯一一个需要三个运算子的运算符。如果第一个表达式的布尔值为true
,则返回第二个表达式的值,否则返回第三个表达式的值。
9、逗号运算符用于对两个表达式求值,并返回后一个表达式的值。
10、错误类型
-SyntaxError
对象是解析代码时发生的语法错误。
-ReferenceError
对象是引用一个不存在的变量时发生的错误。
-RangeError
对象是一个值超出有效范围时发生的错误。
-TypeError
对象是变量或参数不是预期类型时发生的错误。
-URIError
对象是 URI 相关函数的参数不正确时抛出的错误。
- 布尔值与布尔值 转换为数值相加 true+true=2;
- 布尔值与数值相加 转换为数值相加 true+3=4;
- 字符串与非字符串相加 转换为字符串相加 a+false=afalse;"1"+1="11"
- 加法运算符是在运行时决定,到底是执行相加,还是执行连接。也就是说,运算子的不同,导致了不同的语法行为,这种现象称为“重载”(overload) "1"+4+2="142";4+2+"1"="61"
- 运算子是对象,必须先转成原始类型的值,然后再相加。 var b={p:1};b+1="[object object]1"