跳进的那些js坑

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,270评论 0 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139