1. 数据类型
虽然JS里面可以直接写
<script>
a=1;
b="2";
</script>
1
2
3
4
但是实际上js的所有变量/常量都是有类型的。
JS所有的数据类型分为5类
string 字符串类型
number 数字类型
boolean 布尔类型
object 对象类型 (需要注意的是null是对象类型的空值)
function 函数类型
undefined (未定义,不知道是什么数据类型)
1
2
3
4
5
6
2. undefined和null的区别
null是有类型的,只是没有值(值为空),而undefined直接连类型都没有(类型为未定义类型)
比如
a=1;
console.log(typeof(a));//number
a=null;
console.log(typeof(a));//object
console.log(typeof(b));//undefined
1
2
3
4
5
从上面也可以看出,其实JS中一切都是对象哦,再举一个神奇的例子,
function test(){
var x = "123";
var y = new String("123");
console.log(x ==y);// 结果为 true 都是值为"123"的字符串
console.log(x === y);// 结果为 false,因为 x 是字符串,y 是对象
}
1
2
3
4
5
6
3. typeof判断类型
typeof函数可以返回对象的类型:
function test(){
console.log(typeof("123"));// 返回 string
console.log(typeof(123));// 返回 number
console.log(typeof(true));// 返回 boolean
console.log(typeof([1,2,3]));// 返回 object
console.log(typeof({name:"maoge"}));// 返回 object
console.log(typeof(function(){}));// 返回 function
console.log(typeof(x));// 返回 undefined
console.log(typeof(null));// 返回 object
}
1
2
3
4
5
6
7
8
9
10
判断相等
===成立,必须typeof的类型相同,值也相同
==仅判断值,如果类型不同会转换类型
1
2
console.log(1==="1");//false
console.log(1=="1");//true
1
2
4. 局部变量和全局变量
规则:
函数内部使用var声明:局部变量
函数外部使用var声明:全局变量
未使用var声明:全局变量(无论是否在函数内部)
1
2
3
4
还是建议统一先用var声明了再使用!