文章目录
字面量
字面量是一些不可以改变的值,eg: 1 2 3 4 5 6
字面量是可以直接使用的,但是一般不会直接使用字面量。
变量
变量可以用来保存字面量,而且变量的值是可以任意改变的
通常使用变量来保存字面量
- 声明变量
在js中使用var
关键字来声明一个变量:
var a;
a = 1;
console.log(a);
var c = 199;
标识符
- 在js中所有的可以有我们自主命名的就是一个标识符
eg:变量名、函数名、属性名 - 命名规则
(1)标识符可以有 字母、数字、_、$
(2)标识符不能以数字开头
(3)标识符不能是js中的关键字或保留字
关键字:
保留字:
(4)标识符一般都采用小驼峰命名法
首字母小写,其他每个单词的开头字母大写
(5)JS底层保存标识符时实际上是采用的Unicode编码(UTF-8编码)。所以理论上讲,所有的utf-8中含有的内容都可以作为标识符。
eg:汉字也可以
但是不建议
数据类型
数据类型时间上就是指字面量的类型。
js种6种数据类型
字符串 String
需要使用单引号或双引号引起来,都可以用,但是不让混着用。
var s = "hello";
console.log(s);
如果需要引号嵌套,可以在双引号中使用单引号,或者单引号中使用双引号。
输出:
老师说:'清明节不放假'
字符串中可以使用 \
作为转义字符,表示特殊符号的时候可以使用 \
进行转义
console.log("老师说:\"清明节不放假\"")
输出:
老师说:"清明节不放假"
补充:
转义符
\ " 表示 " | |
---|---|
\ ’ 表示 ’ | |
\ n 表示 换行 | |
\ t 表示 制表符 | |
\ \ 表示 \ |
数值 Number
在js种所有的数值都是Number类型
包括整形和浮点型。
检查变量类型:typeof 变量
eg:
var a,b,c;
a = 123
b = 123.123
c = "123"
console.log(typeof a);
console.log(typeof b);
console.log(typeof c);
输出:
number
number
string
Number的最大值:
1.7976931348623157e+308
获取方法:
console.log(Number.MAX_VALUE)
-
Number类型的字面量:
Infinity : 表示正无穷,是Number类型
-Infinity : 表示负无穷,是Number类型
NaN : 表示不是一个数字,是Number类型 -
在JS中证整数的计算基本可以保持精确
-
如果使用JS进行小数运算可能得出一个不精确的结果
-
千万不要使用JS进行对精确度要求比较高的运算
布尔值 Boolean
Boolean:布尔值
布尔值只有两个:
true - 表示真
false - 表示假
var bool = false;
console.log(typeof bool)
console.log(bool)
输出:
boolean
false
控制 Null——专门表示空对象
Null类型的值只有一个,就是null
null专门用来表示空对象
eg:
var a = null;
console.log(typeof a)
console.log(a)
输出:
object
null
未定义 Undefined
只有一个值,就是undefined,表示未定义
当声明一个变量,但是并不给变量赋值时,它的值就是undefined。
对象 Object
对象比较复杂,以后再说
强制类型转换
转换为String
指将一个数据类型强制转换为其他数据类型,一般会转换为:String,Number,Boolean
- 方法一:调用被转换数据类型的
toString()
方法
eg:
var a = 123
console.log("转换前a的类型:"+typeof a)
console.log(a)
var b = a.toString();
console.log("转换后a的类型:"+typeof a)
console.log(a)
console.log("b的类型"+typeof b)
输出:
转换前a的类型:number
123
转换后a的类型:number
123
b的类型string
该方法不会影响到原变量,它会将转换的结果返回
但是注意:null和undefined这两个值没有toString()方法,如果调用他们的方法,会报错
- 方法二:
调用String()
函数,直接转换成字符串。
eg:
var a = 123;
a = String(a);
console.log(typeof a);
输出:
string
注意 : 使用String()函数进强制数据类型转换时:
对于Number和Boolean实际上就是调用对应的 toString() 方法
对于NULL 和 Undefine:
会将null直接转换为"null"
将undefined直接转换为“undefined“
转换为Number
- 方法一
使用Number()
函数
eg:
var a = "123";
a = Number(a);
console.log(typeof a);
console.log(a);
输出:
number
123
字符串转number
(1)如果是纯数字的字符串,则直接将其转换为数字
(2)如果字符串中有非数字的内容,则转换为NaN
(3)如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
Boolean转number
(1)true转换成1
(2)false转换成0
Null转number
null转换成0
Undefined转number
undefined转换成NaN
- 转换方式二(专门对字符串使用)
parseInt()可以将字符串中有效的整数的部分取出来,转换成Int
parseFloat()作用和parseInt()类似,不同的是它可以获得有效的小数
eg:
var a = "123.23a456bn";
console.log(parseInt(a))
console.log(parseFloat(a))
123
123.23
如果对非String使用parseint()或parseFloat()它会先将其转换为String,然后再操作
var a = 198.23;
console.log(parseInt(a))
console.log(parseFloat(a))
输出:
198
198.23
转换成boolean
方法:
调用Boolean()函数将a转换为布尔值
数字转Boolean
除了0和NaN是False,其余的都是true
String转Boolean
除了空字符串是False,其余都是true
null和undefine转Boolean
null和undefine都会转换为false
js中不同进制类型的表示
- 16进制(前面加一个
0x
)
a = 0x10
控制台以10进制输出
- 8进制(前面加一个0)
a = 010
- 2进制(前面加一个0b)
a = 0b10
但是不是所有浏览器都支持2进制
补充
使用parsetInt进行数据转换的时候,像"070"这种字符串,有些浏览器会当成8进制解析,有些会当成10进制解析,所以进行解析类型指定最好:parsetInt(字符串,转换进制类型)
eg:
var a = "070";
console.log(parseInt(a,10))
console.log(parseInt(a,8))
输出:
70
56