时间:2022-10-12 10:05:29 | 栏目:JavaScript代码 | 点击:次
在ES5的时候,我们认知的数据类型确实是 6种:Number、String、Boolean、undefined、object、Null
所以:准确来说目前JS数据类型总共有8种!
按照类型来分有基本数据类型和引用数据类型:
基本数据类型:String、Number、Boolean、Null、Undefined、Symbol、BigInt
引用数据类型:Object【Object是个大类,function函数、array数组、date日期...等都归属于Object】
JavaScript 拥有动态类型。这意味着相同的变量可用作不同的类型
JavaScript中变量似乎很简单,因为它声明变量只需要一个“var”就可以,不像其他编程语言严格区分了数据类型(int/double/char/boolean...)。这样做也是有好处的,变量可以被赋予任何类型的值,同样也可以给这个变量重新赋予不同类型的值。并不是“一定终身”
var x = 1; //number类型 var x = 0.1; //number类型,JS不区分整数值和浮点数值 //现在x由number变成string var x = "hello world"; //由双引号内文本构成字符串 var x = 'javascript'; //单引号内文本同样可以构成字符串 //现在x由string变成boolean var x = true; //true和false作为布尔值 var x = null; var x = undefined; //null和undefined很相似,是特殊的类型
字符串是存储字符(比如 "Bill Gates")的变量
字符串可以是引号中的任意文本。可以使用单引号或双引号
var str = '孙悟空'; //单引号字符串 var str2 = '猪八戒'; //双引号字符串
其他转义字符:
字符串拼接:
var str1 = "hello"; var str2 = "world"; var str = str1 + str2 console.log(str); //helloworld
JavaScript 只有一种数字类型。数字可以带小数点,也可以不带
var num1=5.02; //使用小数点来写 var num2=520; //不使用小数点来写 //极大或极小的数字可以通过科学(指数)计数法来书写 var y=123e5; // 12300000 var z=123e-5; // 0.00123
数值范围:
特殊的数值NaN:
相关函数:
//NaN是一个特殊的number,与其他所有值都不相等,包括它自身 console.log(NaN === NaN ); //false //唯一识别NaN的方法 console.log(isNaN(NaN) ); //true // 范围:5e324 ~ 1.7976931348623157e+308 var min = 5e324; var max = 1.7976931348623157e+308; var a = 1.7976931348623157e+309; console.log(min); //Infinity console.log(max); //1.7976931348623157e+308 console.log(a); //Infinity console.log(isFinite(a)); //false(超出范围,不在数值范围内)
布尔(逻辑)只能有两个值:true 或 false
var x=true; var y=false;
null 表示没有对象,此处无值
undefined 表示缺少值,本来应该有值但没定义
var x = null; var y = undefined
Symbol 函数可以接受一个字符串作为参数,为新创建的 Symbol 提供描述,用来显示在控制台或者作为字符串的时候使用,便于区分
let name = Symbol(); let name2 = Symbol("bb"); console.log(name); // Symbol() console.log(typeof name); // "symbol" console.log(name,name2); //Symbol() Symbol(bb) console.log( name === name2); // false
对象由花括号分隔。在括号内部,对象的属性以键值对的形式 (name : value) 来定义。属性由逗号分隔
//空格和折行无关紧要。声明可横跨多行 var obj = { "name":"张三", "age":18 }
(这里键名也可以不用加引号)
读取对象中属性:
name = obj.name //或 name = obj['name']
<script type="text/javascript"> var x = 3; var y = x; console.log(x,y); //3 3 // 基本数据类型复制后2个变量是独立的 x = 5; //修改一方,另一个不受影响 console.log(x,y); //5 3 var a = [0,1,2,3]; var b = a; console.log(a, b); //(4) [0, 1, 2, 3] (4) [0, 1, 2, 3] a[0] = 9 console.log(a, b); //(4) [9, 1, 2, 3] (4) [9, 1, 2, 3] </script>
结果:
这里明显可以看出b复制了a,改变a数组的值,b数组也跟着改变了。这就是因为当引用数据类型复制的是同一个指针而不是同一个值,指针指向的地址都是相同的,一方修改另一方也会受影响!
(这里涉及了JS的深拷贝和浅拷贝,这里就不再详细赘述,后面会有单独文章进行讲解)
数据类型的转换以及检测数据类型的方法会在其他文章单独讲解,为了方便阅读这里就不再详细赘述~
参考链接:
https://www.html.cn/qa/javascript/11619.html
https://www.cnblogs.com/nangezi/p/9049025.html
https://blog.csdn.net/u013592575/article/details/95087953