上一篇: javascript变量
下一篇: javascript数据类型转换
javascript有5种简单数据类型:undefined、null、boolean、number和string。还有一种复杂数据类型——object
javascript不支持任何创建自定义类型的机制,所有值都成为以上6中数据类型之一
typeof操作符是用来检测变量的数据类型。对于值或变量使用typeof操作符会返回如下字符串
字符串 | 描述 |
---|---|
undefined | 未定义 |
boolean | 布尔值 |
string | 字符串 |
number | 数值 |
object | 对象或null |
function | 函数 |
实例
<script type="text/javascript">
// 检测 1 是什么类型数据,结果为 number
document.write(typeof 1)
let userName = '张三';
// 检测 userName 是什么类型数据
alert(typeof userName);
alert(typeof '前端开发');
</script>
typeof操作符可以操作变量,也可以操作字面量。虽然也可以这样使用:typeof(userName),但,typeof是操作符而非内置函数
ps:函数在javascript中是对象,不是一种数据类型。所以,使用typeof来区分function和object是非常有必要的
undefined类型只有一个值,即特殊的undefined。只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少直接为某个变量赋值为 undefined
实例
<script>
// 只声明了变量,并末赋值
let tmp;
document.write(typeof tmp) // 结果为 undefined
</script>
使用场景:如,开发中经常声明一个变量,等待传送过来的数据
number类型包含两种数值:整型和浮点型。为了支持各种数值类型,javascript定义了不同的数值字面量格式。
即我们数学中学习到的数字,可以是整数、小数、正数、负数
实例
<script>
let score = 100 // 正整数
let price = 12.345 // 小数
let temperature = -40 // 负数
document.write(typeof score) // 结果为 number
document.write(typeof price) // 结果为 number
document.write(typeof temperature) // 结果为 number
</script>
浮点类型,就是该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字
注意:由于保存浮点数值需要的内存空间比整型数值大两倍,因此javascript会自动将可以转换为整型的浮点数值转成为整型
如
<script>
let x=3.7
let x=0.8
let x=.8 //有效,但不推荐此写法
let x=6. //小数点后面没有值,转换为8
let x=12.0 //小数点后面为0,转换成12
</script>
注意JS 是弱数据类型,变量到底属于那种类型,只有赋值之后,我们才能确认
NaN,即非数值(Not a Number)是一个特殊的值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。JavaScript提供了isNaN()函数,用来判断这个值到底是不是NaN。isNaN()函数在接收到一个值之后,会尝试将这个值转换为数值
实例
<script>
alert(isNaN(NaN)); //true
alert(isNaN(20)); //false,20是一个数值
alert(isNaN('25')); //false,'25'是一个字符串数值,可以转成数值
alert(isNaN('Lee')); //true,'Lee'不能转换为数值
alert(isNaN(true)); //false,true可以转成成1
</script>
string类型用于表示由于零或多个16位Unicode字符组成的字符序列,即字符串。字符串可以由双引号(")或单引号(')表示。这两种表示方法没有任何区别。但要记住的是,必须成对出现,不能穿插使用,否则会出错
javascrupt中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。
注意事项
+ 运算符 可以实现字符串的拼接。
实例
<script>
let user_name = '小明' // 使用单引号
let gender = "男" // 使用双引号
let age = '18' // 看上去是数字,但是用引号包裹了就成了字符串了
let str = '' // 这种情况叫空字符串
document.write(typeof user_name) // 结果为 string
document.write(typeof gender) // 结果为 string
document.write(typeof str) // 结果为 string
document.write(user_name + '有' + age + '岁了!' + '是很有\"激情\"的人')
</script>
使用场景:拼接字符串和变量
在没有它之前,要拼接变量比较麻烦
<script>
document.write(user_name + '有' + age + '岁了!')
</script>
语法
``(反引号)
在英文输入模式下按键盘的tab键
内容拼接变量时,用 ${ } 包住变量
<script>
document.write(`${user_name}有${age}岁了!`)
</script>
表示肯定或否定时在计算机中对应的是布尔类型数据。
它有两个固定的值true和 false,表示肯定的数据用 true(真),表示否定的数据用 false(假)。
true不一定等于1,false不一定等于0。JavaScript是区分大小写的,True和False或者其他都不是Boolean类型的值。
实例
<script>
//明天是否会下雨,回答 是 或 否
let num = true //是,会下雨
num = false //否,不会下雨
document.write(typeof isCool) // 结果为 boolean
</script>
什么是null
null类型是一个只有一个值的数据类型,即特殊的值null。它表示一个空对象引用(指针),而typeof操作符检测null会返回object
JavaScript 中的 null 仅仅是一个代表“无”、“空”或“值未知”的特殊值
实例
<script>
var box = null;
alert(typeof box);
alert(undefined == null); //true
</script>
说明:undefined是派生自null的,因此JavaScript规定对它们的相等性测试返回true。由于undefined和null两个值的比较是相等的,所以,未初始化的变量和赋值为null的变量会相等。这时,可以采用typeof变量的类型进行比较。但,建议还是养成编码的规范,不要忘记初始化变量。
undefined 表示没有赋值
null 表示赋值了,但是内容为空
上一篇: javascript变量
下一篇: javascript数据类型转换
*声明:内容来源于网络收集和整理,版权归原著所有,如来源信息有误或侵犯权益,请联系站长作修改和删除处理。