js学习日记-变量的坑】的更多相关文章

js变量细节是前端面试经常遇到的问题,可见其重要程度,要想掌握这个知识点,需注意以下几点: 变量提升 所谓变量提升,就是使用了var关键字申明的变量,会提升到所在作用域的顶部.es5的作用域分为全局作用域和函数作用域,es6(es2015)增加了块级作用域 function test(){ console.log(i); //输出undefined而不是报错 var i=5; } 上面代码实际上等于 function test(){ var i; console.log(i); //输出unde…
js学习之变量.作用域和内存问题 标签(空格分隔): javascript 变量 1.基本类型和引用类型: 基本类型值:Undefined, Null, Boolean, Number, String; 特点: 在内存中占据着固定的地方和大小 从一个变量向另一个变量复制基本类型的值,会创建这个值的一个副本 引用类型值: 是指那些可能由多个值够成的对象 特点: 引用类型的值是对象,保存在内存堆中 包含引用类型值的变量复制引用类型的值,复制的实际是指针,因此两个变量最终都指向同一个对象 参数传递 所…
隐式转换比较是js中绕不过去的坎,就算有几年经验的工程师也很有可能对这块知识不够熟悉.就算你知道使用===比较从而避免踩坑,但是团队其它成员不一定知道有这样或那样的坑,有后端语言经验的人常常会形成一个思维误区:“JS这门语言很简单,看看语法再找几个例子就能操作DOM,编写特效了”.随着react.vue.html5等技术在项目中大规模使用,越来越多的项目中使用了大量的JS,甚至整个项目都用JS来写(例如基于webapi的SPA管理后台.微信小程序.微信H5应用,Hybrid app),如果不深入…
一.对象字面量语法 var person={ name:'小王', age:18, _pri:233 } 成员名称的单引号不是必须的 最后一个成员结尾不要用逗号,不然在某些浏览器中会抛出错误 成员名相同会发生什么? es5普通模式下后定义的会覆盖前面定义的,严格模式则会报错 es6则不管什么模式都采用后面的覆盖前面的 成员名可以是动态变量吗? es5只能在对象字面量表达式申明以后再添加 var dynamicVar="dyna"; var person={ } person[dynam…
只能说是会用和记载,深入理解还需时间. 有关性能优化: 使用createdocumentfragment()方法可以创建某个具有节点该有的所有属性的节点. 使用情况:  提取文档中的某个小部分,修改文档中的小节点,添加部分内容在节点尾部或者某个标志处. 虽然可以用文档的文档对象来在这些情况中使用,但如果防止文件结构被破坏,createDocumentFragment() 方法可以更安全改变文档的结构及节点. 一般这样用: let newLists=document.createDocumentF…
1.js数据类型分为基本数据类型和引用数据类型 基本数据类型:string.number.boolean.null.undefined.symbol(ES6中新增) 引用数据类型:object.array.function 2.判断数据类型的方法: 2.1 typeof 2.1.1 基本数据类型 typeof string  ==>  string typeof number  ==>  number typeof boolean  ==>  boolean typeof undefin…
预定义类 量词 贪婪.惰性.支配性量词 前瞻 边界 RegExp是全局对象,RegExp.$1...$9是全局属性.当执行任意正则表达式匹配操作时,JavaScript会自动更新全局对象RegExp上的全局属性,用以存储此次正则表达式模式的匹配结果.当再次执行正则表达式匹配时,RegExp上的全局属性又会更新,覆盖掉之前的存储数据,以反映本次正则表达式模式的匹配结果. var str = "X98Y87Z65"; // 三个数字部分加了小括号,表示子表达式 var reg = /^X(…
function Car () { this.color = "red"; } Car.prototype.sayHi=function(){ console.log('你好') }var car =new Car(); var car2 = Object.create(Car); new XXX()时发生了什么? var obj={}; obj.__prototype=Car.prototype Car.call(obj) 第一步,创建了一个空对象obj第二步,将空对象的__prot…
1.窗口和浏览器 window.innerWidth.window.innerHeight   浏览器内部可用宽高 window.outerWidth.window.outerHeight   浏览器整体宽高 window.screenTop(Firefox采用screenX)    浏览器左上角距离屏幕顶端的距离(IE.Opera.Chrome中如果紧贴屏幕顶部的话,则Top为浏览器工具栏的高度,而Firefox则为0)window.screenLeft((Firefox采用screenY)…
[JS学习]var let const声明变量的异同点 前言: 本博客系列为学习后盾人js教程过程中的记录与产出,如果对你有帮助,欢迎关注,点赞,分享.不足之处也欢迎指正,作者会积极思考与改正. 总述 js中有三种声明变量的方法:var,let,const.他们各自有各自的有特点. 声明格式 声明 变量提升 作用域 是否存在于windows对象中 var a="abc"; 变量 是 全局或者函数内部 是 let b="abc"; 变量 否 块区域以及向下兼容或者函数…