基础知识1

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

你可能感兴趣的:(基础知识1)