当给普通变量赋值的时候,如果用到了引用变量的性质,js会临时创建一个和普通变量内容一样的临时引用变量,当返回了length等属性&设置了其属性以后,临时引用变量会被销毁,再次访问是访问不到的。
原始类型:1、string;2、object;3、number;
JavaScript会在基本对象赋值的时候给它一个临时对象,后期又会销毁
会产生临时对象,用完即销毁
定义一个基本类型string,需要以对象的方式去操作的时候,js会将基本类型转换为包装类型,临时创建一个对象,赋值或者其他操作后临时对象会被销毁,所以如图访问a.t即为undefined
同理其他的基本类型也是一样的
JavaScript会在 基本对象 赋值 的时候给它一个临时对象
后期又会销毁
对象类型就是有属性又有方法的一个对象.
在一种基本类型当中 :number/string/boolean都有对应的包装类型
str.t //undefine! 注意这里视频里的知识
包装对象
以对象的形式访问基本类型时,创建临时的对象,访问后销毁临时对象
将一个基本类型尝试以对象的方式使用的时候(例如访问长度,增加属性),js会将基本类型转化为包装类型的对象,完成这样的访问之后,临时对象会被销毁掉,故a.t为undefined。
alert
基本类型不是对象 所以没有属性和方法 但是基本类型却可以用length()方法 是因为js自动的把基本类型转化为对象 然后再用这个length方法 结束后再删除这个对象 有点 “阅后即焚” 的感觉~~
JavaScript原始类型:Object、number、string、boolean、null、undefined
当把一个基本类型尝试以对象的方式访问它的时候,比如使用length属性或者新加属性,JavaScript会创建一个包装类型对象,其值与原来的值一样。在访问完成后,比如使用了length属性或者设置了a.t,这个临时变量就会被销毁,所以再输出a.t结果是undefined。
a为基本类型,当访问.length(尝试以对象的方式使用)方法时,浏览器会智能转换为包装对象,当访问完成后(或者a.t = 3)立即销毁,即a.t为undefined。
包装类和基本类型
浏览器创建的包装对象,运行后随后自动给他销毁了。
如字符串调用.length等属性时,会创建一个一样的包装对象,然后调用该属性,返回后自动销毁。其他类型同理
当基本数据类型以对象的形式进行使用时 基本类型数据会临时的转换为包装对象 当使用完成临时对象立即被销毁
new String("")
把字符串转成数组
当对一个基本类型尝试作为对象使用时,如调用方法或设置属性等,JavaScript会自动把该基本类型转换为对应的包装类型对象,当完成本次访问后,该临时对象会被销毁
var str = "string"; //基本类型
var strObj = new String("string"); //对象类型
基本类型转换为包装对象,然后对象会被销毁,无法继续访问到
当尝试以对象的方式使用一个String基本类型的时候,比如访问这个字符串的length属性或者增加一些属性,javascript会智能地把这个基本类型转换成一个包装类型对象。当设置完成后,这个临时对象会被销毁掉。所以再次访问该属性,就是undefined。Number Boolean 等同理。
var a = "string";
定义一个变量a,也可以像对象一样使用(属性)的原因:系统会给变量a生成一个临时的包装对象,使a.length、a.t = 3等生效,返回该值,但是返回后,相应的包装对象会被销毁。
包装对象:基本类型是没有属性和方法的,只有对象有,但js中基本类型还是可以访问其类型对象的属性,使用对应方法,因为js把基本类型转换为对应的包装对象,但是使用之后,这个临时对象会被销毁
当尝试以对象的方式使用一个String基本类型的时候,比如访问这个字符串的length属性或者增加一些属性,javascript会智能地把这个基本类型转换成一个包装类型对象。当设置完成后,这个临时对象会被销毁掉。所以再次访问该属性,就是undefined。Number Boolean 等同理。
基本类型执行期会被隐士转换为包装对象
把原始类型当作对象方式使用,例如访问length属性,或者增加属性。js都会智能转换成包装类型对象,相当于new了一个原始类型对象。当访问完成后,会把这个包装的对象销毁