JS 型别 DAY52

动态型别

// JS属于 动态型别// 执行阶段才会赋予确立型别// typeof 检视型别var name = '皮杰先生'console.log(name); // 型别 stringconsole.log('皮杰先生'); // 型别 string// 会发现 值的本身就具备型别 // 而我们是把值赋予到变数上// 变数的型别式来自于值的

型别转换

分为 显性转换 (Explicit conversion) 与 隐性转换 (Implicit conversion)

// 显性转换// 一个变数的值 直接被赋予另一个型别的值var a = 1;console.log(typeof a); // numbera = '1'console.log(typeof a); // string
//隐性转换var a = 1;console.log(a , typeof a); // 1 numbera = a + '';console.log(a , typeof a); // 1 string (number 转 string)a = a * 5;console.log(a , typeof a); // 5 number (string 转 number)

原始型别及物件型别

原始型别列表

Boolean 布林Null 空值Undefined 未定义Number 数值String 字串BigInt(new) 整数数值(new)Symbol(new) Symbol(new)

上述这些原始型别都有各自的方法(ex:字串英文字转大写)
那为什么他们有各自的方法呢???
因为他们有额外的包裹物件

Boolean 布林 -- new Bollean()Null 空值Undefined 未定义Number 数值 - new Number()String 字串 - new String()BigInt(new) 整数数值(new) - BigInt()Symbol(new) Symbol(new) - Symbol()
(Null , Undefined 没有包裹物件 )

这里来看 null 与 not defined 的型别

var d = null;console.log(typeof d); // object// JS长久以来的错误 但无法修正 因有的网站透过此错误来完成网站应用console.log(name);// name is not definedconsole.log(typeof name);// undefined// 是 typeof 针对 not defined的保护措施

刚刚我们有稍微提到包裹物件
这边先举个例子

var a = 'Jay ';console.log(a.length); // 4console.log(a.toUpperCase()); // JAYconsole.log(a.trim()); // 去头尾空白

那 a 究竟还有那些方法??
这时我们就可以利用包裹物件来查询

// 建构式宣告字串var a = 'Jay';var e = new String(a);console.log(e); //请看下图console.log(typeof e); // object

http://img2.58codes.com/2024/201230395lD74jOLU1.jpg

这里的 proto 就是包裹物件的原型(方法皆在这)
但要注意
当我们宣告原始型别,要避免用建构式宣告
因为型别会是物件(object)

那今天的介绍就到这里
若有任何问题 或 内容有误
请跟我说唷http://img2.58codes.com/2024/emoticon07.gif


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章