JS数据类型
一、JS有三种数据类型,分别是:
- 基本数据类型
String 字符串
number 数字类型
boolean 布尔类型(true/false)
null 空对象
undefined 未定义类型
null跟undefined的区别:null(var arr1 = null;)表示“什么都没有”,尚未存在的对象(函数),表示一个空对象引用,但是(typeof arr1)返回object。undefined(var arr2;)表示一个没有设置值的变量(变量尚未初始化)。(typeof arr2)undefined.
- 复杂数据类型
object
- 引用数据类型
object 对象 var obj = {name:"wxt",id:19001}
array 数组 var arr = ['red','green','blue']
function 函数 var foo1 = function(){} || function foo2(){}
二、变量声明提升
在函数作用域或全局作用域中通过关键字var声明的变量,无论实际上是在哪里声明的,都会被当成在当前作用域顶部声明的变量,这就是我们常说的提升机制,也就是变量声明变量提升。
<script>
//变量声明提升
console.log(height); //undefined
//声明一个变量
var height = "100px"; //100px;
console.log(height);
var age = 100;
function fn1(){
console.log(age); //100
}
function fn2(){
var age = 99;
console.log(age); //99
}
function fn3(){
console.log(age); //undefind(就近原则) 变量声明提升(名字提升了,值没有了)
var age = 99;
}
/*总结:
1.0 先声明变量在引用
2.0 防止重复声明
*/
</script>
三、数据类型的转换
- 转字符串类型
num = 100; //number
num.toString() || String(num) //string
- 转数字类型
str = 100px; //string
parseInt(str) || parseFloat //100 number
Number(str) //NaN number
用Number转字符串为数字类型的时候只用当字符串内容是纯数字的时候才能转,不然就会返回NaN(No a Number)。
- 隐式转换
隐式转换:通过运算符实现数据的类型转换(+ - * / == ===),比如:
num1 = 10; //number
str1 = 10 + ""; //string
str2 = "100"; //string
num2 = str2-0; //number
false == 0
true == 1
[] == false
附上菜鸟上的一张表,展示使用不同的数值转换为数字(Number), 字符串(String), 布尔值(Boolean):
上一篇: Hibernate的坑