变量与 instanceof

  1. js 中的变量也分为基本数据类型与引用数据类型,除了 Object 类型外,其余的全部是基本数据类型(包括 String)

  2. 基本数据类型存储在栈中,引用数据类型存储于堆中

  3. 基本数据类型无法新添加属性,而引用数据类型可以。

var o = {}
o.name = 'o.name'

var j = 'str'
j.name = 'j.name'

alert(o.name)
alert(j.name) // 会输出 undefined

因为 j 是基本数据类型,无法定义 name 属性,所以输出 j.name 时出现的是 undefined。

instanceof

用于判断某个变量是不是指定的类的对象。与 java 中效果一样

基本数据类型使用 instanceof 时,返回的永远是 false

var s = 'fd'
alert(s instanceof String) // false ,因为 s 是基本数据类型

var s2 = new String("fds")
alert(s2 instanceof String) // true ,因为 s2 是 String 类型的对象

全局变量与局部变量

  1. 局部变量除掉前面的 var 关键字,就是全局变量,无论这个局部变量是定义在哪一层。但严禁这样写
var f1 = function(){
    var f2 = function(){
        var f3 = function(){
            b = 'f2'
        }
        f3()
    }
    f2();
}
f1();
alert(b)

调用 f1() 后,外界可以访问到 f3 内定义的变量 b。

  1. if , while , for 等代码块中定义的变量,都属于全局变量
for (var i = 0; i <10; i++) {
};
alert(i)

这里输出的 i 值是 10,说明 i 值是属于全局变量,不会随着 for 循环的结束而回收。

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

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,740评论 18 399
  •   按照 ECMA-262 的定义,JavaScript 的变量与其他语言的变量有很大区别。   JavaScri...
    霜天晓阅读 393评论 0 0
  • 他付出所有真心,她全都不信 冬邑:只愿你相信我一回,总会有人愿对你真心无悔。 她若无其事挣脱我的手时,心里有过莫名...
    奈何既往阅读 201评论 0 0
  • - 1 - 大概4年前,拍了几张叫做《爱情》的照片。那时候还没经历过爱情呢,这是从别人的故事、小说和电视剧里了解的...
    何有理阅读 243评论 0 1
  • 从高中到大学,从大学到工作,细细算来我们这样过了六年有余。 然而我们还是这样过着。 没有结果...
    唐苏一阅读 499评论 0 0