先看这样一些测试代码,我们能从当中发现哪些问题:
var str=”likeke”;
str;//”likeke”
str.length;//6
str.age=22;
str.age;//undefined;
var mystr=new String(“likeke”);
mystr;//String {0: "l", 1: "i", 2: "k", 3: "e", 4: "k", 5: "e", length: 6, [[PrimitiveValue]]: "likeke"}
mystr.length;//6
mystr.age=22;
mystr.age;//22
第一个问题:为什么基本类型string可以访问到length属性?
第二个问题:string的包装类型可以访问到自定义的属性,但基本类型的string为什么却访问不到?
原因:1.当我们以对象的形式访问一个基本类型string的属性或为其创建新属性的时候,js引擎会将其转换为对应的包装类型对象;
2.当我们增加一个自定义属性之后,这个临时对象会被立即销毁。因此,再次访问此属性时(也会再次转换为其包装类型)显示为undefind 。
除了string之外,其它基本类型也是类似的原理,例如,(666).toString().length;//3
相关推荐
JavaScript对象是一种复合值:它是属性和已命名值的集合。通过”.”符号来引用属性值。...没错,这正跟我们正要介绍的包装对象有关。原因是:只要引用了字符串s的属性,JavaScript就会将字符串值通过调用new
JavaScript是面向对象的语言,使用”.”操作符可以访问对象的属性和方法,而对于基本类型(null, undefined, bool, number, string)应该是值类型,没有属性和方法,然而 代码如下:var s=’this is a string’;...
target: 要使用Proxy包装的目标对象,可以是任何类型的对象,包括原生数组,函数,甚至另一个代理。 handler: 一个通常以函数作为属性的对象,各属性中的函数分别定义了在执行各种操作时代理proxy的行为。 ...
javascript部分内容第三节 内置对象 面向对象入门 基本包装类型 变量、作用域及内存
目录 1、Date2、RegExp3、原始包装类型 1、Date 2、RegExp 3、原始包装类型 前言: 引用值(对象)都是某个特定的引用类型的实例对象,例如 Date类型、Function类型,RegExp 正则表达式类型等等。JavaScript...
引用类型由于其值的大小会改变,所以不能将其存放在栈中,否则会降低变量查询速度,因此其存储在堆(heap)中,存储在变量处的值是一个指针,指向存储对象的内存处(按址访问) [注意]对于引用类型的值,可以为其...
本文实例讲述了JavaScript引用类型之基本包装类型。分享给大家供大家参考,具体如下: 为了操作基本类型值,ECDMAScript提供了3个特殊的引用类型——基本包装类型Boolean、Number和String。每当读取一个基本类型值时...
3.6 包装对象46 3.7 不可变的原始值和可变的对象引用47 3.8 类型转换48 3.9 变量声明55 3.10 变量作用域56 第4章 表达式和运算符60 4.1 原始表达式60 4.2 对象和数组的初始化表达式61 4.3 函数...
3.6 包装对象 3.7 不可变的原始值和可变的对象引用 3.8 类型转换 3.9 变量声明 3.10 变量作用域 第4章 表达式和运算符 4.1 原始表达式 4.2 对象和数组的初始化表达式 4.3 函数定义表达式 4.4 属性访问表达式 4.5 ...
3.6 包装对象 3.7 不可变的原始值和可变的对象引用 3.8 类型转换 3.9 变量声明 3.10 变量作用域 第4章 表达式和运算符 4.1 原始表达式 4.2 对象和数组的初始化表达式 4.3 函数定义表达式 4.4 属性访问表达式 4.5 ...
3.6 包装对象46 3.7 不可变的原始值和可变的对象引用47 3.8 类型转换48 3.9 变量声明55 3.10 变量作用域56 第4章 表达式和运算符60 4.1 原始表达式60 4.2 对象和数组的初始化表达式61 4.3 函数...
JavaScript 有一套类型的包装对象,需要的朋友可以参考下。
实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而能够调用一些方法来操作这些数据。 一.基本包装类型概述 var box = 'Mr. Lee';//定义一个字符串 var box2 = box.substring...
3.6 包装对象 46 3.7 不可变的原始值和可变的对象引用 47 3.8 类型转换 48 3.9 变量声明 55 3.10 变量作用域 56 第4章 表达式和运算符 60 4.1 原始表达式 60 4.2 对象和数组的初始化表达式 61 4.3 ...
3.6 包装对象 46 3.7 不可变的原始值和可变的对象引用 47 .3.8 类型转换 48 3.9 变量声明 55 3.10 变量作用域 56 第4章 表达式和运算符 60 4.1 原始表达式 60 4.2 对象和数组的初始化表达式 61 4.3 函数定义表达式 ...
3.6 包装对象 3.7 不可变的原始值和可变的对象引用 3.8 类型转换 3.9 变量声明 3.10 变量作用域 第4章 表达式和运算符 4.1 原始表达式 4.2 对象和数组的初始化表达式 4.3 函数定义表达式 4.4 属性访问表达式 4.5 ...
3.6 包装对象46 3.7 不可变的原始值和可变的对象引用47 3.8 类型转换48 3.9 变量声明55 3.10 变量作用域56 第4章 表达式和运算符60 4.1 原始表达式60 4.2 对象和数组的初始化表达式61 4.3 函数...
Boolean类型var a = new Boolean(true/false)来创建一个Boolean对象Boolean的类型的实例重写了valueOf()返
10.4 关于正则表达式包装对象 10.4.1 RegExp对象——利用正则表达式实现全文检索 10.4.2 RegExp的实例属性 10.5 强大的正则表达式 10.5.1 分析正则表达式的局部 10.5.2 一个例子--强大的在线...