1、多行注释
/*
var a = /h*/.test('hello');
*/
如上,正则表达式里的*/结尾的部分,将多行注释已经给结束掉,当然报错啦
2、变量提升机制
var a=1;
function a() {
a=2;
console.log(a)
}
a();//报错
原因:当函数名和变量名相同的时候,a被提升到代码最前端,并且被赋值为一个函数,然后才会被赋值为1,等同于如下代码
var a=function(){
a=2;
console.log(a)
}
a=1;
a();
3、数组的属性
var arr=[1,2,3];
console.log(arr.length);//3
arr.flag=false; //给数组添加flag属性
console.log(arr); //[1,2,3,flag:false]
console.log(arr.length);//3
尽管给数组添加了一个属性,在字面上看上去像是添加了一个元素,但数组的实际长度并没有发生变化,那么如何判断呢?如下
console.log(arr.constructor.name === "Array");//true