day2类型、值、变量
=============================================================
在js中的六种数据类型
- 基本数据类型:
- String
- Number
- Boolean
- Null
- Undefined
- 引用数据类型:
- Object
=============================================================
基本数据类型
01-String字符串
-
在Js中字符串需要用引号引用起来
-
使用双引号和单引号都可以,但是不能混合使用
-
单引号里可以嵌套双引号、双引号里可以嵌套单引号
-
同引号不能嵌套,双引号里不能放双引号,单引号里不能放单引号
- 但是在字符串中我们可以用\表示准一字符。当表示以写特殊的字符时可以用\进行转义
-
例如:
- “表示”
- ‘表示’
- \n表示换行
- \t表示制表符
- \表示\
- \\表示\
//可以使用单引号 var str ='hello'; //可以使用双引号 var str1 = "你好!"; //单引号里可以嵌套双引号 var str2 = '你好:"hello"'; //双引号里可以嵌套单引号 var str3 = "hello:'你好'"; console.log(str); console.log(str1); console.log(str2); console.log(str3);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QI42EW8m-1626257647551)(E:\WEB\javascript\day2类型、值、变量\image\day2-01.jpg)]
=============================================================
02-number数值型
- 在Js中所有的数值是Number类型
- 包括整数和浮点数(小数)
//数字123
var a = 123;
//字符串"123"
var b = "123";
console.log(a);
console.log(b);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ov9eu85N-1626257647560)(E:\WEB\javascript\day2类型、值、变量\image\day2-02-01.jpg)]
-
可以使用typeof来判断类型;
- 用法: typeof 变量
- 例如:
var a = 123; var b = "123"; console.log(typeof a); console.log(typeof b);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QQbAMFT1-1626257647562)(E:\WEB\javascript\day2类型、值、变量\image\day2-02-02.jpg)]
-
Js中可以表示的数字最大值
- Number.MAX_VALUE
- 1.7976931348623157e+308
- Js中可以表示的数字最小值(此处最小值是大于0的最小值)
- Number.MIN_VALUE
- 5e-324
console.log(Number.MAX_VALUE);
console.log(Number.MIN_VALUE);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dgW6C1FI-1626257647566)(E:\WEB\javascript\day2类型、值、变量\image\day2-02-03.jpg)]
- 如果使用Number表示一个数字超过最大值则返回一个Infinity
- Infinity 是一个字面量,表示无穷大
- -Infinity 是一个字面量,表示负穷大
- 用typeof检查Infinity返回的是一个Number类型
var c = Number.MAX_VALUE*Number.MAX_VALUE;
console.log(c);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JCMJ9vAP-1626257647569)(E:\WEB\javascript\day2类型、值、变量\image\day2-02-04.jpg)]
- NaN是一个特殊的数字,表示 Not a Number
- 用typeof检查NaN返回的是一个Number类型
var d = "asd" * 123;
console.log(d);
console.log(typeof d);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-avvBpyu4-1626257647571)(E:\WEB\javascript\day2类型、值、变量\image\day2-02-05.jpg)]
- 在js中整数的运算基本可以保证精确
- 如果在Js中进行浮点运算,可能会得到一个不精确的结果。所以在Js中不建议来运算精确度比较高的运算
var e = 123456 + 654321;
console.log(e);
var f = 0.1 + 0.2;
console.log(f);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lCJAj03R-1626257647572)(E:\WEB\javascript\day2类型、值、变量\image\day2-02-06.jpg)]
=============================================================
03-Boolen
- Boolen 布尔值
- 布尔值只有两个值,用来进行逻辑判断:
true 真值;
flase 假值;
- 使用typeof来检查布尔值时会返回boolen类型
var boolen = true;
console.log(boolen);
console.log(typeof boolen);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ozIVL8Iv-1626257647573)(E:\WEB\javascript\day2类型、值、变量\image\day2-03-01.jpg)]
=============================================================
04-Null和Undefined
- Null只有一个值,null;
- null这个值专门用来表示一个空对象
- 使用typeof检测null值时会返回一个Object对象
- Undefined(未定义)只有一个值,就是undefined
- 当声明一个变量,但未给赋值时,此时它的值就是undefined;
- 使用typeof检测undefined值时返回一个Undefined
var a = null; console.log(a); console.log(typeof a); var b; console.log(b); console.log(typeof b);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kIJHO63o-1626257647575)(E:\WEB\javascript\day2类型、值、变量\image\day2-04-01.jpg)]
=============================================================
类型转换
01-类型转换-String
-
强制类型转换
- 指将一个数据类型强制转换为其它的数据类型
- 类型转换主要是值将其它类型转换为
String Number Boolean
-
将其它类型转换为String
- 方式一:
- 调用被转换类型的toString()方法
- 该方法不会影响到原变量,它会将转换的结果返回
- 但是注意:null和undefined这两个值没有toString()方法,如果调用会报错。
- 方式一:
var a = 123; a = a.toString(); console.log(typeof a); console.log(a); var b = true; b = toString(); console.log(typeof b); console.log(b); var c = null; c = toString(); console.log(typeof c); console.log(c); var d = undefined; d = toString(); console.log(typeof d); console.log(d);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WP2tJfkK-1626257647576)(E:\WEB\javascript\day2类型、值、变量\image\05-01a.jpg)]
- 方式二:
- 调用使用String()函数,并将被转换的数据作为参数传递给函数
- 使用String()函数强制转换类型时对于Number和Boolean实际上是调用的
- toString()方法;但是对于Null和Undefined就不会调用toString()方法
它会将Null直接转为"null",将Undefined转为"undefined"
var a = 123; a = String(a); console.log(typeof a); console.log(a); var b = false; b = String(b); console.log(typeof b); console.log(b); var c = null; c = String(c); console.log(typeof c); console.log(c); var d = undefined; d = String(d); console.log(typeof d); console.log(d);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a76fPHsa-1626257647577)(E:\WEB\javascript\day2类型、值、变量\image\05-03a.jpg)]
- 方式三(隐式的类型转换):
- 为任意的数据类型 +""
- 例子:
var a = true; a = a + "";
- 原理:和String()函数一样
02-类型转换-Number
- 将其它类型转换为Number类型
- 方法一:使用number()函数
- 字符串 —> 数字
- 如果是纯数字的字符串则直接转为数字。
- 如果字符串中含有非数字则转换为NaN。
- 如果字符串中是空格则转换为0。
- null —> 数字
- null转化为数字0.
- undefined —> 数字
- undefined转化为NaN。
- Boolean —> 数字
- false 转换成 0
- true 转化成 1
- 字符串 —> 数字
- 方法一:使用number()函数
var a = "123"; a = Number(a); console.log(typeof a); console.log(a); var a = "123asd"; a = Number(a); console.log(typeof a); console.log(a); var a = " "; a = Number(a); console.log(typeof a); console.log(a); var a = null; a = Number(a); console.log(typeof a); console.log(a); var a = undefined; a = Number(a); console.log(typeof a); console.log(a); var a = true; a = Number(a); console.log(typeof a); console.log(a); var a = false; a = Number(a); console.log(typeof a); console.log(a);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nkCVZvhZ-1626257647578)(E:\WEB\javascript\day2类型、值、变量\image\05-Number-01.jpg)]
-
方法二:这种方式专门用来对付字符串
- parseInt()把一个字符串转换为一个整数。
- parseInt()将凡是字符串里有数字的整数并以数字开头的都会将其整数部分取出来,要是字符串里是以非数字或负号开头则返回NaN。
- 要不是字符串形式的话就将其先转换为字符串形式然后在转为NaN
var a = "123.456asd"; a = parseInt(a); console.log(typeof a); console.log(a); var a = "-123.456asd" a = parseInt(a); console.log(typeof a); console.log(a); var a = ".123.456asd"; a = parseInt(a); console.log(typeof a); console.log(a); var a = true a = parseInt(a); console.log(typeof a); console.log(a);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BktRAUvP-1626257647580)(E:\WEB\javascript\day2类型、值、变量\image\05-Number-02.jpg)]
- parseFloat()把一个字符串转化为一个浮点数。
- parseFloat()将凡是字符串里有的数字都以浮点型提取出来。要字符串里不是以数字、小数点或负号开头的则都转换为NaN。
var a = "123.456asd" a = parseFloat(a); console.log(typeof a); console.log(a); var a = "-123.456asd" a = parseFloat(a); console.log(typeof a); console.log(a); var a = ".123.456asd" a = parseFloat(a); console.log(typeof a); console.log(a); var a = true a = parseFloat(a); console.log(typeof a); console.log(a);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7kqgldAX-1626257647581)(E:\WEB\javascript\day2类型、值、变量\image\05-Number-03.jpg)]
- 方式三(隐式的类型转换):
-
使用一元的+来进行隐式的类型转换
-
例子:
var a = “123”;
a = +a; -
原理:和Number()函数一样
-
03-其它进制之间的转换
- 在js中,如果需要表示16进制的数字,则需要以0x开头
- 如果需要表示8进制的数字则需要用0开头
- 但是八进制数要是字符串的形式需要通过parseInt()函数来转为数值型有时浏览器会将其误认为是十进制,这时则需通过 parseInt(a,8);这种形式予以指明进制数。
- 如果表示2进制的数字则需要用0b开头,但兼容性不行,一些浏览器不支持
//十六进制的数 var a = 0x12; console.log(a); var a = 0xff; console.log(a); var a = 0xcafe; console.log(a); //八进制的数 var a = 045; console.log(a); var a = "045"; a = parseInt(a,8); console.log(a); //二进制的数 var a = 0b11; console.log(a);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6AOTBSZ0-1626257647582)(E:\WEB\javascript\day2类型、值、变量\image\05-不同进制之间-01.jpg)]
04-其它类型转Boolean型
- 其它类型转Boolean型通过调用boolean()函数来完成;
- 数值型 —> 布尔
- 除了0和NaN为false,其它都为true
- 字符串 —> 布尔
- 除了空串其余都为true
- Infinity —> true
- null —> false
- undefined —> false
- 对象也会转换为true
- 数值型 —> 布尔
var a = 123; a = Boolean(a); console.log(typeof a); console.log(a); var a = 0; a = Boolean(a); console.log(typeof a); console.log(a); var a = NaN; a = Boolean(a); console.log(typeof a); console.log(a); var a = ""; a = Boolean(a); console.log(typeof a); console.log(a); var a = "-123"; a = Boolean(a); console.log(typeof a); console.log(a); var a = "NaN"; a = Boolean(a); console.log(typeof a); console.log(a); var a = null; a = Boolean(a); console.log(typeof a); console.log(a); var a = undefined; a = Boolean(a); console.log(typeof a); console.log(a); var a = Infinity; a = Boolean(a); console.log(typeof a); console.log(a);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wvxcpIMn-1626257647583)(E:\WEB\javascript\day2类型、值、变量\image\05-Boolean-01.jpg)]