js学习笔记之包装对象
JavaScript包装对象
近日有时间,闲下来好好学习原生js
JavaScript是一门面向对象语言,使用”.”就可以访问对象的属性和方法,而基本类型(null, undefined, bool, number, string)应该是值类型,怎么会有属性和方法。
但是
var s="string";
console.log(s.length);//
console.log(s.indexOf('i'));//
于是去翻阅资料
JavaScript可以很灵活的将一种类型转换为另一种了类型,当引用了字符串s的属性,JavaScript就会将字符串值通过调用new String(s)的方式转换成对象,这个对象继承了字符串的方法并用来处理属性的引用。上面代码在使用的实际上是String对象的length属性和indexOf方法,一旦属性引用结束,这个新创建的对象就会销毁。
这也是频繁处理字符串效率低的一个原因。
String
String对象拥有很多方法
charAtcharCodeAtconcatfromCharCodeindexOflastIndexOfmatchreplacesearchslicesplitsubstrsubstringtoLowerCasetoUpperCase
var s='string';
s.words=6;
console.log(s.words);
执行这段代码,输出结果是undefined。
第二行,调用s字符串的属性,于是JavaScript创建一个临时字符串对象,并对该words属性赋值,随后销毁这个对象。
第三行,尝试读取s的属性,又会创建一个新的临时字符串对象,这个对象自然没有words属性。
在读取字符串的属性值的识货,表现得像对象一样,但如果你给其赋值,则会被忽略。修改只是发生在临时对象上,而这个对象随后会被销毁。
存取字符串,数字或布尔值的属性时创建的临时对象称为“包装对象”
js学习笔记之包装对象的更多相关文章
- JS 学习笔记--11---内置对象(Global/Math)
练习中使用的浏览器是IE10,如果各位朋友有不同意见或者遇到浏览器不兼容问题,希望指正 1.内置对象的定义:有ECMAScript实现提供的.不依赖与宿主环境的对象,在ECMAScript运行之前就已 ...
- JS 学习笔记--12---面向对象
练习中使用的浏览器为IE10,如果各位朋友有不同意见或者本文有什么错误地方,望指正 ECMASCript有两种开发模式:函数式(面向过程)和面向对象.面向对象有一个很明显的标志,那就是类,我们可以通过 ...
- [前端JS学习笔记]JavaScript prototype 对象
一.概念介绍 prototype 对象 : 原型对象.在JavaScript中, 每一个对象都继承了另一个对象,后者称为"原型对象". 只有 null 除外,它没有自己的原型对象. ...
- 25-Node.js学习笔记-express-app.locals对象
app.locals对象 将变量设置到app.locals对象下面,这个数据在所有的模板中都可以获取到 app.locals.users=[{ name:'柠檬不酸', age:20 },{ name ...
- 【转】Backbone.js学习笔记(二)细说MVC
文章转自: http://segmentfault.com/a/1190000002666658 对于初学backbone.js的同学可以先参考我这篇文章:Backbone.js学习笔记(一) Bac ...
- JS 学习笔记--9---变量-作用域-内存相关
JS 中变量和其它语言中变量最大的区别就是,JS 是松散型语言,决定了它只是在某一个特定时间保存某一特定的值的一个名字而已.由于在定义变量的时候不需要显示规定必须保存某种类型的值,故变量的值以及保存的 ...
- WebGL three.js学习笔记 法向量网格材质MeshNormalMaterial的介绍和创建360度全景天空盒的方法
WebGL学习----Three.js学习笔记(5) 点击查看demo演示 Demo地址:https://nsytsqdtn.github.io/demo/360/360 简单网格材质 MeshNor ...
- vue.js 学习笔记3——TypeScript
目录 vue.js 学习笔记3--TypeScript 工具 基础类型 数组 元组 枚举 字面量 接口 类类型 类类型要素 函数 函数参数 this对象和类型 重载 迭代器 Symbol.iterat ...
- 2019-4-29 js学习笔记
js学习笔记一:js数据类型 1:基本数据类型 number类型(整数,小数) String类型 boolean类型 NaN类型其实是一个nu ...
随机推荐
- DOM中的范围 createRange()
学习<JavaScript 高级程序设计> 12章dom范围的笔记 dom2级在Document类型中定义了 createRange()方法: 创建range对象很简单 var range ...
- HttpRequest 和HttpWebRequest的区别
[1]问题: asp.NET C# 中HttpRequest 和HttpWebRequest的区别 HttpRequest 与HttpWebRequest 有什么区别? 网上中文的帖子很多,但是答案 ...
- js学习--DOM操作详解大全 前奏(认识DOM)
一 . 节点属性 DOM 是树型结构,相应的,可以通过一些节点属性来遍历节点树: 方法 说明 nodeName 节点名称,相当于tagName.属性节点返回属性名,文本节点返回#text.nodeNa ...
- 配置并学习微信JS-SDK(3)—菜单接口
1.设置菜单 //2.批量显示菜单项接口 wx.showMenuItems({ menuList: [ 'menuItem:profile', //查看公众号 'menuItem: ...
- frameset标签代码实现网站跳转
js代码1: document.writeln("<frameset rows=\"0, *\">"); document.writeln(&quo ...
- Word 2016 test
Word 2016 test
- init_sequence所对应的函数
一.init_sequence内容 init_fnc_t *init_sequence[] = { cpu_init, /* basic cpu dependent setup */ board_in ...
- java特点
简单: Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用.另一方面,Java丢弃了C++中很少使用的.很难理解的.令人迷惑的那些特性,如操作符重载.多继承.自动的强制类型 ...
- (转载)KL距离,Kullback-Leibler Divergence
转自:KL距离,Kullback-Leibler Divergence KL距离,是Kullback-Leibler差异(Kullback-Leibler Divergence)的简称,也叫做相对 ...
- bzoj AC 50 庆祝~~
No. 1050 Solved 50 Submit 212 AC 60 PE 6 WA 88 TLE 13 MLE 5 OLE 2 RE 29 CE 9 10001002100310041005 10 ...