JavaScript中基本类型是如何进行属性和方法操作的
来源:互联网 发布:nginx重启命令windows 编辑:程序博客网 时间:2024/04/30 13:11
通常我们知道在JS中只有对象才有属性和方法的,比如:
var obj = {};obj.name = "jackie";console.log(obj.name);
那基本类型有没有属性和方法呢?
var num1 = 9527;var num2 = 32.54879;console.log(num1.toExponential(3)); // 9.527e+3 指数计数法console.log(num2.toFixed(3)); // 32.549 四舍五入保留三位小数var str = "jackie";str.age = 12;str.sex = "male";console.log(str.split("")); // ["j", "a", "c", "k", "i", "e"]console.log(str.age); // undefinedconsole.log(str.sex); // undefined
以上代码说明,基本类型也可以像对象类型一样使用,包括对属性赋值和访问属性都是可操作的(即便是访问并没有什么卵用)。
那么有点小问题:不是说基本类型没有属性和方法吗? 那怎么Number还有toString(),toPrecision(),String还是有那些length, substring(), split()等等一大堆属性,方法呢?它们又是怎么操作和实现的呢?
答:这是为了方便大家对数字,字符串类型”对象”进行一些常见操作,所以有”好事者”在底层加入了一些专门针对Number,String,Boolean类型的优化, 可以理解为:当我们使用这些类型的方法时,JavaScript自动帮我们在”后台”加工了一下,就是new了一下这些类型,把它转换为引用类型供我们操作。
ex:
var string = "jackie";var arr = string.split("");
JS在我们使用以上String方法时,自动在”后台”改为以下:
var string = new string("jackie");var str = string.split("");string = null;
又如:
var s = new String();s.name = "Lau";console.log(s.name); //Lau
之所以可以这样使用基本类型,是因为JavaScript内部在处理我们进行的方法和属性操作时,JavaScript会在创建一个临时的包装类型供我们使用,这样子就可以像对象一样操作基本类型。但在每次操作完成后,JavaScript创建的临时对象就会销毁,当下次再对其进行操作和访问时,JavaScript会重新建立临时对象。
正是因为Number,String,Boolean具有这种特殊的特性,所以它们又被称为基本包装类型。
阅读全文
0 0
- JavaScript中基本类型是如何进行属性和方法操作的
- JavaScript中Array类型的基本操作
- 方法参数是基本类型和引用类型的区别
- javascript中string类型的所有方法和属性及应用,javascript手册
- javascript中数组的属性和方法
- java方法参数基本类型和方法参数是引用类型的区别
- javascript的基本类型和引用类型
- javascript的基本类型和类型转换
- JavaScript的基本类型和引用类型
- JavaScript 创建数组的方法和基本操作
- JavaScript 创建数组的方法和基本操作
- javascript DOM和DOM操作的四种基本方法
- JavaScript中基本数据类型和包装类型
- Spring、基本类型属性和集合类型属性的注入
- javascript 如何调用activex的方法和属性
- PLSQL中如何进行界面的基本使用和编辑。
- javascript节点操作DOMDocument属性和方法
- javascript节点操作DOMDocument属性和方法
- instruments工具的使用
- jsp学习1
- 树莓派(Raspberry Pi 3)
- Service的工作过程(Android开发艺术探索学习笔记)
- 图解SSL协议
- JavaScript中基本类型是如何进行属性和方法操作的
- 解决:org.springframework.security.access.AccessDeniedException: Access is denied
- js -- 输出内容(document.write)和空格
- 构建java中间件
- Python爬虫入门二之爬虫基础了解
- andorid运行时添加断点调试
- Java获取客户端所在的IP地址和服务器地址
- redis
- [Leetcode 495] Teemo Attacking