javascript - 什么时候将字符串、数字和 bool 值声明为 Javascript 中的对象是明智的

标签 javascript

什么时候应该将 Javascript 数据类型声明为对象?它们会降低执行速度,并产生严重的副作用,那么为什么这可能呢?

根据 W3Schools:http://www.w3schools.com/js/js_numbers.asp enter image description here 同样来自 http://www.w3schools.com/js/js_datatypes.asp enter image description here

最佳答案

数字、字符串和 bool 值既可以是基元也可以是对象。例如,您可以创建一个原始字符串,也可以创建另一个对象:

var name = 'John Doe';
var email = new String('john@example.com');

不同之处在于对象(在本例中为 email)有很多有用的字符串操作方法。因为对象比基元需要更多的内存。所以建议只创建原始值,只在需要时才进行对象转换。 JavaScript 会自动执行此操作。例如:

var name = 'John Doe'; // This is a primitive.
var email = 'john@example.com'; // This is an other primitive.

两者的串联是另一个原语:

var to = name + ' <' + email + '>';

然而,当在原语上调用方法时,email 暂时变成一个对象:

var index = email.indexOf('@');

因为到对象的转换是自动发生的,所以你不需要担心。将您的变量声明为原语,JavaScript 会在需要时将其转换为对象。

关于javascript - 什么时候将字符串、数字和 bool 值声明为 Javascript 中的对象是明智的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24620666/

相关文章:

javascript - 如何将 ng-model 的引用作为函数的参数传递?

javascript - 使用Vanilla JS动态更新页面内容

javascript - Chrome 36 上的 Javascript 循环遍历此数组的最快方法

javascript - Sequelize.js ownsToMany 实例方法 create 不起作用?

javascript - Internet Explorer 11 中的 Jquery 对话框问题

javascript - 即使尚 undefined variable ,如何检查是否已声明?

javascript - 如何以编程方式禁用 HTML 查看源或加密 Html 元素?

javascript - 优化这个脚本

javascript - JavaScript 中的任意对象方法和属性

javascript - 如何检测浏览器是否支持 CSS3 模糊?