-
块级作用域
查看全部 -
// 逗号运算符--从左到右依次计算表达式的值,取最后一个表达式的值
var val = (1,2,3);
console.log(val) //3
//void 运算符
void 0 //undefined
void(0) //undefined
查看全部 -
一、隐式转换:巧妙用“+”和“-”规则转换类型
1、num-0:变为数值 2、num+"":变为字符串
当想要把字符串变为数值时:
字符串与数字之间的加号理解为字符串拼接“123”+65=“12365”减号理解为运算 “123”-65=58
二、a==b 与 a===b 的区别:
1、类型相同时比较具体数值
2、类型不同时:
1)==:尝试类型转换:
string => number 把字符串变为数值再进行比较
ture => 1 把布尔值变为数值再进行比较
false => 0
object => 基本类型(涉及包装类)
2)===: 直接返回false=:表示赋值,比如a=3;就是把3放到a里面
= =:表示等于,3= ="3";会返回true,因为浏览器内部会把字符串3变成数字3
= = =:表示严格等于,不会转换数据类型3= = ="3",会返回false,因为不会转换他们的数据类型,数字和字符串当然就不相等了
对象和对象比较,是比较的引用,两个对象都是new出来的(新创建出来的),所以是不同的对象,不同的对象的引用是不同的,所以输出是false
只有对象和基本类型进行比较的时候,才会将对象转变成基本类型,再作比较。两个对象比较的时候是不会转成基本类型的,如:
var a = new String('hi');
var b = new String('hi');
a == 'hi';//true (先转换成基本类型再比较)
b == 'hi';//true(先转换成基本类型再比较)
但是 a ===b;// false (比较的是引用)查看全部 -
var obj = Object.create({x:1});
{x:1} 原型链上的
obj.x = 1;
obj.hasOwnProperty('x'); //false 继承原型链上的属性
查看全部 -
4-4、4-5、4-6查看全部
-
try{
}
catch(ex){
}
finally {
}
查看全部 -
严格模式特点
查看全部 -
use strict使用严格模式
查看全部 -
运算符优先级
查看全部 -
运算符的分类
查看全部 -
用hasownproperty来判断属性是对象上的还是对象的原型上的
查看全部 -
用in来判断属性是否有
查看全部 -
必须configurable为true才能用delete删除
查看全部 -
逗号运算符取最右边的值
查看全部 -
原始内型查看全部
举报