基元类型
JavaScript 中有六种基元类型和原语
类型仅保存基元值,没有要调用的函数。
六种基元类型
为什么基元类型没有要调用的函数,但'1'.toString()在浏览器中正确执行?
由于 '1'.toString() 中的字符串 '1' 是此时封装到其对应的 String 对象中,上面的代码等效于 newString('1').toString(
),因为 newString('1') 创建了一个对象,并且 toString() 技巧存在于这个对象中。
空是什么类型
如今,许多书籍将 null 解释为空对象,这是一种对象类型。但在早期的 JavaScript 使用了 32 位系统,考虑到性能问题,使用高位来存储变量的类型信息javascript有哪几种数据类型,000 以对象开头javascript有哪几种数据类型,null 表示全部为零,所以被错误地判断为 Object,即使后来的内部判断代码发生了变化,但 null 类型是保留了对对象的判断, 至于null是哪种类型,它属于仁者和智者,你说它是一个bug,说它是一个空对象对于对象类型来说是可以理解的。
对象类型
在 JavaScript 中,不仅基元类型,还有对象类型,对象类型存储
地址和基元类型存储值。
var a = [];
var b = a;
a.push(1);
console.log(b); // 输出[1]
在
上面的代码中,创建了一个对象类型A(字段),然后将A的地址交给变量B,最后A的值被改变,当B被复制时,B的值也同步改变,因为它们在视频内存中使用相同的地址,改变任何一个变量的值都会影响其他变量。
对象被视为函数参数
function testPerson(person) {
person.age = 52;
person = {
name: '李四',
age: 18
}
return person;
}
var p1 = {
name: '张三',
age: 23
}
var p2 = testPerson(p1);
console.log(p1.age); // 输出52
console.log(p2.age); // 输出18
代码剖析:
在testPerson函数中,人员在函数内传递对象p1的针副本,
改变 person 的属性,会同步反映在对象 p1 上,p1 对象中的 age 属性发生了变化,即值为 52testPerson 函数返回一个新对象,这个对象此时与参数 person 无关,因为它分配了新的内存地址 上面的分析可以表示为右图所示
JavaScript (JS) 是一种轻量级、解释型或即时编程语言javascript是什么语言,首先具有函数。虽然它被称为用于开发网页的脚本语言,但它也用于许多非浏览器环境,JavaScript 是一种基于原型的多范式动态脚本语言,并支持面向对象、命令式、声明式和函数式编程范式。JavaScript 于 1995 年由 Netscape 的 Brendan Eich 在 Netscape Navigator 浏览器上首次设计和实现。因为Netscape与Sun合作,Netscape管理层希望它看起来像Java,因此得名JavaScript。但实际上,它的句式更接近自我和计划。JavaScript 的标准是 ECMAScript。截至 2012 年,所有浏览器都完全支持 ECMAScript 5.1,而较旧的浏览器至少支持 ECMAScript 3 标准。2015年6月17日,ECMA国际发布了EC
JavaScript (JS) 是一种轻量级、解释型或即时编程语言,首先具有函数。虽然它被称为用于开发网页的脚本语言,但它也用于许多非浏览器环境,JavaScript 是一种基于原型的多范式动态脚本语言,并支持面向对象、命令式、声明式和函数式编程范式。JavaScript 于 1995 年由 Netscape 的 Brendan Eich 在 Netscape Navigator 浏览器上首次设计和实现。因为Netscape与Sun合作,Netscape管理层希望它看起来像Javajavascript是什么语言,因此得名JavaScript。但实际上,它的句式更接近自我和计划。JavaScript 的标准是 ECMAScript。截至 2012 年,所有浏览器都完全支持 ECMAScript 5.1,而较旧的浏览器至少支持 ECMAScript 3 标准。2015年6月17日,ECMA国际发布EC外卖