目录
一、数字类型:number
1.用var声明变量,( typeof 变量名 )用于查看数据类型
var num =123;//数字类型的声明
num = 12.3;//更改num变量的内容
//typeof 用于查看数据类型
console.log(typeof num);
2.Infinity、NaN 都输入数字类型
infinity:
var a=2/0;// 存的是结果,打印也是结果
console.log(a);//返回Infinity,也是数字类型
console.log(typeof a)
NaN:not a number,是数字类型但是不是数字,NaN与任何数值进行运算结果都是NaN
var b="我"/1;//NAN:not a number
console.log(b);
console.log(typeof b);
isNaN(b);
注意:isNaN();方法:判断这个变量是不是NaN,是返回true 否则返回false。isNaN() 如果是数字,就直接比较,如果不是数字,则先将它转化成数字再进行比较,比如:console.log(isNaN("marry"));marry转化成数字是NaN类型 NaN=NaN,所以返回true
判断相等: console.log(NaN==NaN); //==是判断两个数字是否相等(NaN不与任何数据相等,包括自己)
拓展:JavaScript中不适合进行科学运算,底层的精度丢失,会造成误差(与Java小数二进制计算很像)
举例:
var d=0.1+0.2;
console.log(d);//输出0.30000000000004
如何规避?
①将它变成整数
d=(0.1*10+0.2*10)/10;
console.log(d);//规避误差(将它变成整数)
②使用函数 toFixed(); 括号内是小数的位数
// toFixed(n)//规避误差,保留n位小数
d=0.1+0.2;
console.log(d.toFixed(1));
二、字符串
1.声明:var str="内容";
字符串:引号里面的内容(可以是单引号、双引号、反引号)
var str="today";//双引号
str ='天气';//单引号
str =`good`;//反引号
console.log(str);
console.log(typeof str);//数据类型位string 字符串类型
2.字符串的拼接(此时的 +号 是作为拼接符号使用,而不是双目/单目运算符)
var name="小明";
var age="18";
// 字符串拼接
var c ="我是"+name+",今年"+age+"岁"
console.log(c);
***模板字符串:只能用反引号,变量用 ${} 括起来,并且模板字符串可以解析回车换行、空格(保留格式)
var introduce=`我是${name},今年${age}岁`;
console.log(introduce);
拓展1:在加号是双目运算符的情况写,一侧出现字符串,+号则作为拼接符使用
但是!!
举例:num=1+ +"1";//后面的加号表示的是正号 前面的是运算符(加法)
//但是由于只有数字才说正负,所以会将后面的字符串变成数字,然后进行运算
var num="1"+1;
console.log(num);//打印11,字符串拼接
console.log("1"+true );//转字符串拼接,返回的是 1true
拓展2:转义符 :\" 告诉浏览器这只是一个符号()双引号; \n 回车换号 \t tab空格 \r 回车 \b退格 \\即:\(反斜杠).引号内部不能嵌套相同的引号(如果非要用一样的引号,这时候就可以使用转义符啦)
var a1="我说\n \"今天天气真好啊\"";//引号内部不能嵌套相同的引号,使用转义符
console.log(a1);
字符串的属性和方法:
1.length 获取字符串长度(中文和英文都是一默认一个字符,空格、标签符号都是一个字符)
var str="今天星期二,abcabc"
console.log(str.length);//返回12
2.indexOf(参数1,[参数2]) 中括号中内容可以省略,参数1:要查找的字符串 参数2:查找开始的位置。 indexOf(参数1,[参数2])作用:返回 字符串(首字符)所在的 位置(下标),从0 开始,找不到则返回-1
var str="今天星期二,abcabc"
console.log(str.indexOf("ab",1));//返回:6
3.charAt() 返回该位置上的字符,没有则返回空字符 不是null 也不是空格 就是没有
var str="今天星期二,abcabc"
console.log(str.charAt(3));//返回:期
4.slice(start,[end]) 用于截取字符串,不会影响原字符串,前闭后开(左闭右开),可以只写start(从第n位开始到最后结束)
var str="今天星期二,abcabc"
var str2=str.slice(2,5)
console.log(str2);
5.toLocaleLowerCase()将字符串全部转换位小写,不会影响原字符串
str="ABCDe";
console.log(str.toLocaleLowerCase());//不会影响原字符串
6.toLocaleUpperCase()全部转换为大写
str="ABCDce";
console.log(str.toLocaleUpperCase());
7.split(分隔符) 分隔,但是会将字符串转换为数组
str3="ABCDE";
var arr=str3.split("C") //把C作为分隔符
console.log(arr);//["AB","DE"]
8.trim() 去掉字符串前后的空格,不能去掉中间的空格
str=" ab c ";
console.log(str.trim());//ab c
9.substring() 截取字符串,前闭后开,和slice使用方式相同
str="abcdefg";
console.log(str.substring(2,4));//cd
三、布尔类型true false
<script>
console.log("----boolean-------");
// true false,只有两个值
var bool=true;//声明
bool =false;
console.log(typeof bool);
</script>
四、undefined
undefined的数据类型:undefined:"缺少值" 此处应该有值,但是没有
var a=undefined;
console.log(typeof a);//undefined
var b;
console.log(b);//undefined
五、null
null类型的数据:null:表示没有对象,此处不应该有值
var n=null;
console.log(n);
console.log(typeof n);//object
拓展:undefined与null的比较
console.log(undefined==null);//true 比较值 在值的层面来说,是相等的,都是空置
console.log(undefined===null);//false 比较值和数据类型(严格相等),undefined数据类型和null数据类型不等