发表于: 2016-08-18 00:07:16

1 1932


  • 今天完成的事情:看原生


  1. 明天计划的事情查缺补漏


    遇到的问题:。。


收获:

运算符(不常见):


逗号运算符:用逗号运算符可以在一条语句中执行多个运算。
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(){}
}
函数声明可以被预先处理,而函数表达式并不可以。



返回列表 返回列表
评论

    分享到