1、变量的命名规则:
(1)可以有字母、数字、下划线、美元符号组成,但是不能数字开头。
(2)不能是关键字和保留字
(3)区分大小写
!!! 注意:变量在 局部作用域内 如果定义了与 全局作用域 相同的 变量
如果在局部作用域调用时,一定会先去访问局部作用域中的,下面常见错误
var a = 3;
function fn() {
console.log(a); 这个函数的作用域没有定义变量a,所以使用的是全局变量的a, 输出 3
}
function fn() {
console.log(a); 这个函数里面有a变量的定义,所以会先去访问局部里的a,而不会去访问全部作用域中的,因为使用var声明的变量有"变量提升",所以这里输出undefined
var a = 99;
console.log(a); 正常输出 99
}
function fn2() {
console.log(a); 这个函数里面有a变量的定义,所以会先去访问局部里的a,而不会去访问全部作用域中的,因为使用let声明的变量 **没有** "变量提升",所以这里会报错
let a = 99;
console.log(a); 正常输出 99
}
记住:在ES6中规定,let,const 声明的变量在任何一对{}中都是局部作用域,而var只有在函数中才会新开一个局部作用域
var a = 3;
if (true) {
console.log(a); -->这里会输出 3,虽然下面定义了a, 但这里的使用的是 var 声明变量,所以这里并没有新开一个作用域
var a = 9;
}
if (true) {
console.log(a); -->这里会报错,因为使用let声明的变量对于每个 {} 都认为是一个局部作用域,而且这个作用域定义了a变量,所以会先去访问局部里的a,而不会去访问全局作用域中的,使用let声明的变量不会有"变量提升",所以会报错
let a = 99;
}
2、进制:
十六进制:以0x开头
八进制:以0开头
3、简单数据类型:
(1)数值型
有整数和浮点数,还有Infinity(正无穷大)和-Infinity(负无穷大),还有NaN(not a number)
(2)String类型
str.length:获取字符串的长度
(3)Boolean类型
(4)Nndefined:表示变量值声明但是还没有赋值,所以他的值是undefined。
(5)Null类型
如果想让一个变量的值为null,则需要手动去设置,比如:var aa = null;
4、获取变量类型(typeof 变量名)
var num = 123;
console.log(typeof num);//在控制台则输出number
注意:null返回的数据类型为object,因为它代表的是一个对象为空
5、其他类型转换成String类型
(1)调用toString()方法
例如:var num = 2; var str = num.toString()
注意:undefined 和null没有toString()方法,所以用其他办法转换
(2)调用String(变量)函数
例如:var n = null; var str = String(n);
(3)字符串拼接
例如:var num = 2; var str = num + ""
6、其他类型转换成Number类型
(1)Number():
例如:var str = '123'; var num = Number(str)
注意:
a、
Number()转换的是字符串时,如果字符串中有一个非数字,则返回NaN。
b、
undefined转为NaN, null转为0
(2)parseInt();
例如:var str = '123abc'; var num =parseInt(str) ; //返回123
注意:
a、
parseInt()无法把布尔类型转为数值类型,返回的结果是NaN(因为他会先把非字符串的 值先转为字符串,再转为数值)。
b、
还有就是转换字符串时,如果字符串由字母和数字组成,并且是由数字开头,那么就会转换数字部分,非数字部分不转换,如果是字母开头,那么直接返回NaN。
(3)parseFloat();
例如:var str = 124; console.log(typeof parseFloat(str));//返回的结果是124,没有带.0哦
注意:这里的parseFloat()和java的不一样,不会自动变成小数,遇到字母和数字结合的字符串,他的处理方式和parseInt()
差不多,只是多了可以解析一个小数点。
(4)使用取正(+)
或者取反(-)
的方式
var num = '123abc';
console.log(+num); //NaN-->这样隐式转换内部调用的是Number()函数
7、其他类型转换成Boolean类型
(1)Boolean()函数:
例如:var str = 124; console.log(Boolean(str));;//返回的结果是true;
注意:转化成Boolean类型大多数的结果都是true,只有下面五种情况下会是false
null、undefined、""空串、0、NaN
(2)除了用Boolean()函数可以转换,还可以利用取反(!)进行隐式转换
var str = '123';
console.log(!!str); //--》返回true
网友评论