1.数值类型(number)
指数字1,2,3,4,..........(数学上的数字)
2.字符串类型(string)
被单双引号所包裹的内容
3.布尔类型(boolean)
共有两个值:true和false
4.其他数据类型
undefined(未定义) ull(空) object(对象类型、引用类型)
5.基本数据类型(原始数据类型)
number boolean string undefined null
6.引用类型
object function regexp array
判断变量的数据类型
eg:
<script>
var a=10;
console.log(typeof a);
var a="string";
console.log(typeof a);
var a;
console.log(typeof a);
console.log(typeof b);
</script>
console.log(在控制台输出)
运行结果为:
几种赋值与定义的关系
1.未定义,直接输出 会error
eg:
<script >
console.log(a);
</script>
结果显示:
2.变量只定义,为赋值,值为undefined;(当一个变量只声明未赋值时,类型为undefined)
eg:
<script >
var a;
console.log(a);
</script>
结果显示:
3.变量未定义,直接赋值,可以正确显示
eg:
<script >
a=10;
console.log(a);
</script>
结果显示:
4.变量提升机制;
eg:
<script >
a=20;
var a;
console.log(a);
</script>
<script >
var a;
a=20;
console.log(a);
</script>
大家都知道,js代码都是从上往下执行的,但是前提是当浏览器扫描js代码时,先扫描声明的变量,然后才是其他的内容,所以上面两段代码都是一样的。不过小编这里不建议第一种写法;
运行结果为:
变量提升只发生在定义变量上不在赋值上,赋值语句照样遵循顺序结构。
eg:console.log(num1);【这段代码是可以执行的,执行结果是undefined】
var num1=20;
执行的顺序是 var num1;
console.log(num1);
num=20;
输出一个表达式时,本质为输出这个表达式的运算结果,如console.log(a+b) 时,先执行a+b,然后输出a+b的结果
JS是一门弱类型语言 JS在声明变量时,是没有数据类型的,一旦赋值之后,变量又有了数据类型