发表于: 2016-08-18 00:07:16
1 1932
今天完成的事情:看原生
明天计划的事情:查缺补漏
遇到的问题:。。
收获:
运算符(不常见):
逗号运算符:用逗号运算符可以在一条语句中执行多个运算。
var a = (1,2,3)
console.log(a) //3
delete运算符
var a = {x:1}
a.x;//1
delete a.x;
a.x;//undefined
in运算符 判断键值是否存在
var arr = ['one','two','three','four'];
arr.five = '5';
0 in arr;//true
'one' in arr; //false,只可判断数组的键值
'five' in arr;//true,'five'是arr对象的属性
'length' in arr;//true
void运算符 不管多少都为undefined
void();//undefined
void(0);//undefined
语句
try/catch/finally语句
try语句允许我们定义在执行时进行错误测试的代码块。
catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。
finally 语句在 try 和 catch 之后无论有无异常都会执行。
for in 语句
用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。
顺序不确定,且容易手打原型链的影响
with语句
with 语句用于设置代码在特定对象中的作用域。
优化更难,可读性差,可被变量定义代替,严格模式禁用,不推荐使用
严格模式:特殊的运行模式,修复语言上的不足,提供更强的错误检查,并增强安全性。
‘ues strict‘//进入严格模式
不允许未声明变量被赋值
arguments变为参数的静态副本
delete不可配置的属性报错
对象字面量重复属性名报错
禁止八进制字面量
eval, arguments变为关键字
eval独立作用域
对象
属性检测
var cat = new Object;
cat.legs = 4;
cat.name = "Kitty";
'legs' in cat;//true
'abc' in cat;//false
"toString" in cat;//true,inherited property!!! 检测原型链
cat.hasOwnProperty('legs');//true
cat.hasOwnProperty('toString');//false
判断是否可枚举
cat.propertyIsEnumerable('legs');//true
cat.propertyIsEnumerable('toString');//false
属性getter和setter
存取器属性,只有getter只读,只有setter只写
var p = {
get(){},
set(){}
}
函数声明可以被预先处理,而函数表达式并不可以。
评论