tip: 本文含部分 Es6 语法
1.if(a)的自动转换
数据类型??? 转换为 true 的值??? ?? 转换为 false 的值
? Boolean ?? ? true??????????? ? false
??String? 任何非空字符串? ???????""(空字符串)
? Number? 任何非零数字值(包括无穷大)??? 0 和 NaN
? Object? 任何对象??????????????? null
? Undefined? n/a ?????????????? undefined
(1?n/a(或 N/A), 是 not?applicable? 的缩写, 意思是 "不适用".)
以上是使用 Boolean()转换函数方法时会返回的值
在用 if(a)判断的时候, 首先执行了 Boolean(a), 然后 if 判断为真或假.
2. 遍历
a. 数组 (Array) 的遍历
数组自带 forEach,filter,map 等方法可以进行遍历, 不同的是, map 方法可能会返回 undefined.
b. 对象 (Object) 的遍历
- (1)for..in
- var obj={
- snow:1,bran:2,king:3,nightking:4
- };
- for(let i in obj){
- console.log(i+','+obj[i])
- }
- (2)Object.keys(obj)
Object.keys 返回一个数组, 包括对象自身的 (不含继承的) 所有可枚举属性 (不含 Symbol 属性) 的键名.
- var obj = {
- 'a': 'Beijing', 'b': 'Haidian'
- };
- console.log(Object.keys(obj)); //['a', 'b']
tip: 补充在遍历对象时可以用的方法
hasOwnProperty:(判断该对象是否包含某属性)
for in (一般搭配 hasOwnProperty 来使用) 遍历原型链上可枚举的,
- for (let key in obj) {
- if (obj.hasOwnProperty(key)) {
- console.log('key:' + key + ',' + 'value:' + obj[key])
- }
- }
- delete:(删除该对象某属性)
- for(var key in student){
- delete student[key];
- }
其他遍历对象的方法:
3.DOM 扩展
1.html DOM querySelector() 方法
querySelector 只能选择第一个匹配的节点;
该方法类似 JQ:
- // 获取文档中所有的 <p> 元素
- var x = document.querySelectorAll("p");
- // 设置第一个 <p> 元素的背景颜色
- x[0].style.backgroundColor = "red";
- var x = document.getElementsByClassName("example color");
- x[0].style.backgroundColor = "red";
- let a = 0;
- let url = a || '';
- //url 为''
- let b = 1
- let url1 = b || '';
- // url1 为 1
- let a = 1;
- let url = a && '';
- //url 为''
- let b = 0
- let url1 = b&&''
- //url1 为 0
来源: http://www.bubuko.com/infodetail-3281682.html