js基础学习之-js包装对象

1     var test = "test";
2         test.a = "hello";
3     console.log(test.a); //undifined

定义:
在JavaScript中,“一切皆对象”,数组和函数本质上都是对象,就连三种原始类型的值——数值、字符串、布尔值——在一定条件下,也会自动转为对象,也就是原始类型的“包装对象”。
通俗来讲:
字符串,数值,字符串,这些单身狗看其它人都有对象,非常不爽,所以自己也搞了个对象,名字叫包装。

1 console.log("hello world".length);
2 console.log("this a string".indexOf("a"));

其实,在我们调用这些方法和属性时,JS内部已经隐式地帮我们帮创建了一个包装对象了,以上的实际的情形应该是这样的:

1 console.log(new String("hello world").length);
2 console.log(new String("this a string").indexOf("a"));

包装对象和显式创建对象的区别:

区别1:

二者是内容相等,但是存储空间地址不一样

1 var a1 = "test",
2     a2=new String("test");
3 console.log(a1 == a2);//true
4 console.log(a1 === a2);//false

区别2:
隐式创建的包装对象,在使用完后之后就会被抛弃了。简单来说就是,一个大大的负心汉,上完我,就抛弃,还重新去找其他对象。
拿我们开头的那道题来说:
test.a = "hello";
这里隐式创建了一个包装对象,所以这里赋值不会报错。
console.log(test.a);
这里之前的包装对象已经被抛弃了,但是使用了"."运算符,所以又创建一个新的包装对象,但是这个对象的属性a并没有赋值,所以属性a的值是undefined。

说到实际运用中,有的浏览器性能不是很好,比如说低版本IE,当频繁处理字符串时,效率会很低。所以很多时候,我们还不如直接显式地创建包装对象,防止浏览器过多地创建隐式的包装对象,提升性能。

1 //不推荐使用种方法
2 var example = "this is a example";
3 //推荐使用这种方法,提升性能。
4 var example2 = new String("this is a example");
时间: 2024-10-10 03:02:07

js基础学习之-js包装对象的相关文章

js基础学习之-js对象的属性

Js属性 1. 设置属性 1)  对象. 2)  对象[‘属性名’] 3)   GetAttribute函数 2. 获取属性 1)  变量=对象. 2)  变量=对象[‘属性名’] 3)  GetAttribute函数 点和[]的区别: 1.访问关键字和保留字属性时只能使用[]  2.通过名称遍历属性时只能使用[] 1 obj['class'] //class是保留字,E3是保留字,E5在非严格模式下依然是保留字 2 obj['for'] //for是关键字 3 //第5 版对使用关键字和保留字

js基础学习笔记(二)

2.1  输出内容(document.write) document.write() 可用于直接向 HTML 输出流写内容.简单的说就是直接在网页中输出内容. 第一种:输出内容用“”括起,直接输出""号内的内容. <script type="text/javascript"> document.write("I love JavaScript!"); //内容用""括起来,""里的内容直接输出.

js基础学习笔记(三)

3.1 认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 先来看看下面代码: 将HTML代码分解为DOM节点层次图: HTML文档可以说由节点构成的集合,三种常见的DOM节点: 1. 元素节点:上图中<html>.<body>.<p>等都是元素节点,即标签. 2. 文本节点:向用户展示的内容,如<li>...</li&g

js基础学习笔记(一)

* 在js编写过程中,尽量保持统一使用单引号 'XXXX': * 所有变量都要声明 var,避免全局函数调用的冲突: 1.1    输出内容 docment.write(‘aileLi’); 改变某ID元素样式 docment.getElementById(‘ID’).style.color=’样式参数’; 1.2   输出弹出框 alert(‘aileLi’); 1.5  什么是变量?  从字面上看,变量是可变的量: 从编程角度讲,变量是用于存储某种/某些数值的存储器. 定义变量使用关键字va

js学习笔记之包装对象

JavaScript包装对象 近日有时间,闲下来好好学习原生js JavaScript是一门面向对象语言,使用"."就可以访问对象的属性和方法,而基本类型(null, undefined, bool, number, string)应该是值类型,怎么会有属性和方法. 但是 var s="string"; console.log(s.length);//6 console.log(s.indexOf('i'));//3 于是去翻阅资料 JavaScript可以很灵活的

JS基础学习08

今天主要学习到的是对象的概念及对象的创建. 22. 基本包装类型 昨天在学习JS中内置的对象时,字符串作为基本数据类型也具备对象的属性和方法,这里就是讲字符串变成了基本包装类型. 而在基本包装类型调用时会经过以下几个步骤: 1 先生成一个临时的基本包装类型的对象,var temp = new String(); 2 使用这个临时创建的对象,调用临时对象的属性和方法. 3 调用完毕之后,立即消毁,temp = null; 通过上面的三个步骤使字符串具备了对象的属性和方法. 23. 对象的概念和作用

JS 基础学习随想

2012年就已经接触过了js,给我的印象:这是一门谈不上复杂的语言.大概这就是所谓的学的越浅,用的越少,觉得自己会的东西好像得更多吧!开始做基础练习题的时候觉得好像都十分简单.可是后来在做到对象数组的部分还是遇到了问题,接着发现自己其实并不非常了解js.首先来说说我在codefordream基础学习的情况吧 基础部分主要学习的有:注释符号,数据类型,算数运算,逻辑术语,判断语句,循环语句,及function. 简单的可以说说的是,由于长期使用其他语言的原因,js对于数组的遍历其实有一点区别: 最

Vue.js 基础学习 v-on 指令

在前面的基础学习中已经写了v-for和v-bind两个指令 今天学习v-on指令 v-on指令:用来绑定事件的body中 <div id="app"> </div> script中 var app = new Vue({ el : '#app', methods : { } }) 在div app中加入一个button并绑定一个点击事件 <button v-on:click="onClick">点我</button>

Vue.js 基础学习

今天我开始了Vue.js 的学习. 那么什么是Vue.js 呢? Vue.js是一套开发Web页面的JavaScript脚本框架.听起来感觉很难,不过据说,Vue.js是Web-Javascript脚本框架中最容易上手的框架.所以我便选择了先来学习这个. 要学习Vue.js首先就要获取库文件了,在网上有很多地方可以找到,我是在bootcdn上找到的 接下来我们通过Vue输出一串Hello World ! 首先引入vue. <script src="https://cdn.bootcss.c