1,随笔由来 第一天开通博客,用于监督自己学习以及分享一点点浅见,不出意外的话,应该是一周一更或者一周两更.  此博客所写内容主要为前端工作中遇上的一些问题以及常见问题,在此基础上略微发表自己的一点浅见,如有出现错误,请看到的各位能够不吝赐教,此致谢意. 前几天在某技术群中水的正欢,忽然有群友提出了一个问题,虽然不难,卻是常人忽视的点,且出现次数较多,所以在此写一点东西,提醒一下自己. 2,JavaScript中的var 与 function 首先我们来看下面这个demo var f = fun…
在很多面试题中,经常会看到关于变量提升,还有函数提升的题目,所以我就写一篇自己理解之后的随笔,方便之后的查阅和复习. 首先举个例子 foo();//undefined function foo(){ console.log(a);//undefined var a = 10; } 上面的例子中,foo()函数的声明在调用之后,但是还是会输出函数中的结果.在foo()函数的内部,变量a的声明之前就调用了,但是系统会输出undefined,而不会报错,这里面就涉及到了变量提升还有函数提升,为什么会出…
在EcmaScript5中只有全局作用域和函数作用域,EcmaScript6增加了块级作用域. 块级作用域(一对花括号{}即为一个块级作用域) 变量提升 console.log(name); //undefined var name = "Hello JoeXin!"; console.log(name); //Hello JoeXin! function f() { console.log(name); //undefined var name = "JoeXin"…
1.什么是变量提升 所谓的变量提升指的是:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体(作用域)的最顶部. //先声明后使用 var x; console.log(x);// undefined //先试用后声明 console.log(y);// undefined var y; //上面的式子可以写成下面的样子 变量提升:把x,y提升到顶部 var x; var y; console.log(x); console.log(y); ①变量的使用有两种形式,先声明再使用或…
1 在JavaScript中的变量分别区分为两种: 一种为基本类型值,一种为应用类型值. 基本类型值指的是简单的数据段 引用类型值为可能由多个值组成的对象 引用类型的值是保存在内存中的对象,JavaScript不允许直接操作对象的内存空间,实际上操作对象的引用而不是实际对象. var dada = new Object();undefineddada.name = "dada";"dada"console.log(dada.name);VM158:1 dadaund…
栈内存和堆内存 JavaScript中的变量分为基本类型和引用类型 基本类型是保存在栈内存中的简单数据段,它们的值都有固定的大小,保存在栈空间,通过按值访问 引用类型是保存在堆内存中的对象,值大小不固定,栈内存中存放的该对象的访问地址指向堆内存中的对象,JavaScript不允许直接访问堆内存中的位置,因此操作对象时,实际操作对象的引用 结合代码与图来理解 let a1 = 0; // 栈内存let a2 = "this is string" // 栈内存let a3 = null;…
三种命名方法 在程序语言中,通常使用的变量命名方法有三种:骆驼命名法(CamelCase),帕斯卡命名法(PascalCase)和匈牙利命名法. 依靠单词的大小写拼写复合词的做法,叫做"骆驼命名法"(CamelCase).比如,backColor这个复合词,color的第一个字母采用大写. 它之所以被叫做"骆驼命名法",是因为大小写的区分使得复合词呈现"块状"(bump),看上去就像骆驼的驼峰(hump). "骆驼命名法"又分…
(转载)http://blog.163.com/xuxiaoqianhz@126/blog/static/165190577201061594421870/ JavaScript中定义变量有两种方式: 1 使用var关键字定义变量,如“var bookSum;” 该种方式可以定义全局变量也可以定义局部变量,这取决于定义变量的位置. 在函数体中使用 var关键字定义的变量为局部变量:在函数体外使用var关键字定义的变量为全局变量. 2 不使用var关键字,而是直接通过赋值的方式定义变量,如“boo…
在javascript中关于变量与函数的提升 一.简介 在javascript中声明变量与函数的执行步骤: 1.先预解析变量或函数声明代码,会把用var声明的变量或者函数声明的代码块进行提升操作 2.然后再进行执行操作 关于变量声明提升:用var声明的变量提升,其只是变量提升了,而没有进行赋值的提升 二.关于变量与函数提升的注意点 1.变量提升的代码演示 var a = 10;console.log(a);//10console.log(b);// undefinedvar b = 20;con…
关于JavaScript中定义变量时有无var声明的区别 var a=5; //正确 a=5; //正确 在javascript中,以上两种方法都是定义变量的正确方法.微软的Script56.CHM中是这样解释的: 尽管并不安全,但声明语句中忽略 var 关键字是合法的JS语法.这时,JS 解释器给予变量全局范围的可见度.当在过程级中声明一个变量时,它不能用于全局范围,这种情况下,变量声明必须用 var 关键字. 从上面的描述看来,对待这两种定义方法要区分以下两种情况: 1.在一个过程级中(即位…