javascript查漏补缺之十一 ——《对象模型的细节》
- JavaScript 是一种基于原型而不是基于类的面向对象语言。
set-cookie响应头部
服务器使用Set-Cookie响应头部向用户代理(一般是浏览器)发送Cookie信息。
写法:
1 | Set-Cookie: <cookie名>=<cookie值> |
JavaScript中的对象只能使用String类型作为键类型。
对对象的枚举
1 | function showProps(obj, objName) { |
上面的列子使用了for in
和 hasOwnProperty
,自己几乎没有这样写过代码,都是先用Object.keys
获取所有的键,然后循环键组成的数组进行操作。下次可以试一波。
下面主要关于代理服务器的缓存。
用来处理DOM集合的一个更高效的土法子
从来没有这样用过诶。div = divs[i]
这个赋值表达式,当i = length时,返回值为false就会停止这个循环。
1 | var divs = document.getElementsByTagName('div'); |
创建Map
使用set
方法添加
1 | const m = new Map(); |
set方法返回的是当前的Map对象,因此可以采用链式写法。
1 | let map = new Map() |
?
单独使用:匹配前面一个表达式0次或者1次。等价于 {0,1}。
如果紧跟在任何量词 *、 +、? 或 {}
的后面,将会使量词变为非贪婪的(匹配尽量少的字符),和缺省使用的贪婪模式(匹配尽可能多的字符)正好相反。
x(?=y)
: 正向肯定查找。
/Jack(?=Sprat)/会匹配到’Jack’仅仅当它后面跟着’Sprat’。/Jack(?=Sprat|Frost)/匹配‘Jack’仅仅当它后面跟着’Sprat’或者是‘Frost’。但是‘Sprat’和‘Frost’都不是匹配结果的一部分。
js中数字的范围和类型
范围: -(2^53 - 1) ~ (2^53 - 1)
类型: 普通数字, +Infinity, -Infinity, NaN
使用开发者工具查看dom节点的监听函数