NaN的数据类型为number NaN:非数
console.log(typeof NaN);//number
判断一个数是否为非数 isNaN(),如果是返回 false,不是数字返回 ture
boolean
他的值为 ture 和 false,任何数据类型都可以转换为boolean类型
let n = 5;
console.log(n,typeof n);
console.log(Boolean(n),typeof Boolean(n));
会返回 boolean 中 false 的情况
1,空字符串,包含 ' ' , " ", 字符串模版 : ` `
2,0
3,NaN
4,false
5,null
6,undfined
新方法 Boolean(n)
字符串拼接
let str = "java"
str = str + "script"
console.log(str);
字符串模版使用方式
let Eric = 'lzcchap',age = '21';
let eric =`我叫${Eric}今年${age}岁`;
console.log(eric);
console.log("请输入你的名字");
let name1 = readline.question();
console.log("请输入你的年龄");
let age1 =readline.question();
console.log(`你好,${name1},你今年${age1}岁`);
` ${ } `
数据类型转换
js是一种动态数据类型语言,变量本身是没有类型的,可以赋予任意类型的值,蛋数据本身和各种运算是有类型的,因此运算或比较时,变量就需要转换类型。大多情况下这种数据类型转换是自动的,但有时也需要强制转换
隐式类型转换
隐试转换就是系统内部自动发生的转换,一般发生于不同的数据类型进行运算时间
console.log('11'< 4); //false
if(1){
console.log("ok"); //ok
}
console.log("2" * 5); //10
1.不同数据类型进行比较
2.不同数据类型进行运算
3.对非布尔值求布尔值
显式类型转换
会尽可能将值转换为整数 parselnt()
console.log(parselnt(123));
console.log(parselnt("123abc"));
console.log(parselnt("abc123"));
console.log(parselnt(null));
console.log(parselnt(undefined));
会尽可能将值转换为小数
console.log(parseInt(123));
console.log(parseInt("123abc"));
console.log(parseInt("abc123"));
console.log(parseInt(null));
console.log(parseiInt(undefined));
会尽可能将值转换为数字
console.log(Number("123"));
1.整体转换
2.如果是布尔值,true 为 1 false 为 0
3.如果是数字,就返回数字
4.如果含有非数,undefined转为NAN
5.如果是空字符,null转为0
转换为字符串 String()
console.log(String("14545"));
赋值运算符
= , += , -= ,*=, /=
let a = 11231232;
let b = 24345234245;
a += b;
// 等同于a= a+b
console.log(a);
一元运算符
自增自减
i++ i-- , --i ++i(单独起一行 可读性)
++在后
let i = 0;
let j = i++; /* ++在后 先运算再自增 */
console.log(i,j); /* i=1 , j=0 */
++在前
let i = 0;
let j = --i; /* ++在前 先自增再运算 */
console.log(i,j); /* i=0 , j=1 */
逻辑运算符
与(and) 或 (or) 非(not)
. 与&&
.或||
.非!
算法运算符
加减乘除 取模%
console.log(10%8);
console.log(21313123%546346);
指数运算
即求幂
console.log(22**3);
关系运算符
大于 等于 小于
相等==与全等于===的区别:全等则数据类型也要想等
console.log(1 == "1"); true
console.log(1 === "1"); false
console.log(null == undefined);
console.log(null === undefined);
console.log(NaN == NaN);
null的数据类型是object
NaN 是个狠人 连自己都不认
console.log('a'>'b');
ASCII码
A=65 a=97