javascript权威指南(6)随笔
不可变的原始值和对象的引用:对象为引用类型,"string、number、boolean、undefined、null"为基本类型。
Javascript的类型转换:
在实际开发中,会常见如下类型转换方式:x + " " // 转为为字符串,等价于String(x); + 3 或 x - 0 //转换为数字,等价于Number(x);!!x 转为为布尔类型,等价于Boolean(x);
判断值:null undefined "" false 0 NaN 均为false
中断循环:
break : 立即退出最内侧循环或者switch语句。当整个数组遍历完成以后会正常退出循环,如果找到需要查找的数组,则使用break语句退出循环。
for (var i = 0; i < a.length; i++) {
if (a[i] === target) break
}
严格模式(use strict)和非严格模式区别(前三点重要)
*在严格模式中禁止使用with语句
*在严格模式中,所有的变量都需要提前声明,如果给一个未声明的变量、函数、函数参数、catch从句参数或全局对象的属性赋值,将会抛出错误异常。
(非严格模式中,这种隐式声明的全局变量的方法是给全局对象新添加一个新属性)。
*在严格模式中,调用的函数(不是方法)中的一个值是“undefined”。
(非严格模式中,调用的函数中的this的值总是全局对象)。可以利用这个特性判断js是否支持严格模式。
var hasStrictMode = (function () {'user strcit'; return this === undefined} ()) ;
*在严格模式中,当通过call()和apply()来调用函数时,其中的this值就是通过call()和apply()传入的第一个参数
(非严格模式中,null和undefined值被全局对象和转换为对象的非对象值所代替)
对象属性的特性:(属性包含1个名字和4个特性)
*数据属性4个特性:值(value)、可写性(writable)、可枚举性(enumerable)、可配置性(configurable)
*存取器属性4个特性:读取(get)、写入(set)、可枚举性(enumerable)、可配置性(configurable)