JavaScript语言精粹读书笔记

JavaScript运算符优先级

运算符的优先级,依次降低

运算符含义
.  []  ()提取属性与调用函数
delete new typeof + - !一元运算符
*  /  %乘法、除法、求余
+ -加法/连接、减法
>=  <= >  <不等式运算符
===   !==等式运算符
&&逻辑与
||逻辑或
?:三元

对象

对象字面量

对象字面量中,如果属性名是一个合法的JavaScript标识符且不是保留字,则不强制要求用引号括住。

var stooge = {
    "first-name": "Joe" //必须括住
    number: 100 //可选括住
}

检索属性值

检索对象里包含的值,采用[]的方式,如果属性名是合法的JavaScript标识符且不是保留字,则优先考虑使用 . 表示法

stooge["first-name"] 
flight.departure.IATA

对象引用

对象通过引用来传递,永远不会被复制,指向同一个对象

var x = stooge
x.nickname = 'curly'
var nick = stooge.nickname // nick === x.nickname

原型

JavaScript中,每个对象都连接到一个原型,并且可以从中继承属性。所有通过字面量创建的对象都能连接到Object.prototype,它是JavaScript中的标配对象。

var obj = Object.create(superObj) //obj是一个原型为superObj的对象

枚举属性

使用for...in来遍历一个对象中所有的属性名,使用hasOwnProperty方法过滤掉原型链中的属性

var name
for(name in stooge){
    if(stooge.hasOwnProperty(name)){
    }
}

通过for..in遍历的属性顺序是不确定的,因此一般对处理成数组并加以使用。

删除

delete运算符可以用来删除对象的属性,如果对象包含属性,则该属性被移除,它不会触及到原型链中的对象

var obj ={
    name: 'Joe'
}
delete obj.name

函数调用

函数调用的模式有4种:方法调用模式、函数调用模式、构造函数调用模式、apply调用模式,调用模式不同,this也不同

  • 方法调用模式:this指向调用方法的对象
  • 函数调用模式:this指向全局的方法
  • 构造器调用模式:this指向new的对象
  • apply调用模式:this指向第一个参数,如果第一个参数为null,则指向全局
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值