数据类型转换
转换为数值类型
1.number
当成整体看 所以 abc123 不能转为16进制 在输出
不是数字的转换为数值类型打印出来一般都是NaN true false null 特殊
var t1='buzhidao';
var t2=Number(t1);
console.log(typeof Number(t1)); //Number
console.log(t2 );//NaN
console.log(t1+100 ); //字符型+数值型 直接组合 buzhidao100
console.log(t2+100 ); //NaN+数值 还是NAN
text1=true;
console.log(text1); //true
console.log( true );// true
console.log(typeof Number(text1) ); //numeber
console.log(typeof Number(true) );// number
console.log(Number(true) ); //true 转为数值型是1 false 是0
var text2;
console.log(typeof Number(text2) );//Number
console.log(Number(text2) );//NaN
console.log(typeof Number(null) );//Number
console.log( Number(null) );// null打印出来 0
2.parseInt
//一位一位的判断 如果第一位不能转为合法的数字 则会转为NaN 如果第一位能转为则保留在对下一位判断 如果不是 则返回NaN
不能识别小数
var p1='abc123';
var p2='123abc';
console.log(parseInt(p1));//NaN
console.log(p1);
console.log(parseInt(p2)); //123
console.log(p2);
var num=2020;
console.log((num%4==0 && num%100!=0) || num%400==0);
console.log( 18.5 <= (80/1.9**2 ) && (900/1.9**2 )<=24.9);
- parseFloat
也是以为一位一位数的对待 同parseInt
// 如果第一位不能转成合法的值 那么就立马输出 NaN 然后停止转换
// 如果第一位可以转换 那么保留第一位 继续下一位
// 识别小数点
var test = '123.45';
console.log(parseFloat(test));// 123.45
console.log(parseFloat('123.45abc'));// 123.45
console.log(parseFloat('abc123.45'));// 123.45
var test;
console.log(parseFloat(test));// NaN
console.log(parseFloat(null));
转换为字符串
1.String()
任何类型都可以使用这个转成字符串
- toString()
不能转 undefined null
var test = 100;
console.log(typeof test);// 100
console.log(typeof String(test));// string
console.log(typeof String(12.34));// string
console.log(typeof String(100e55));// string
console.log(typeof String(true));// string
console.log(typeof String(false));// string
console.log(typeof String(null));// string
var haha;
console.log(typeof String(haha));// string
//toString
console.log(typeof test.toString());// string
console.log(typeof 123.45.toString());// string
console.log(typeof 100e5.toString());// string
var test1 = true
console.log(typeof test1.toString());// string
var test2 = false
console.log(typeof test2.toString());// string
console.log(typeof null.toString());// 报错
var haha;
console.log(typeof haha.toString());// 报错
布尔类型
0 0.0 NaN “” ‘’ false null undefined
复杂数据类型 引用类型中 如果是空的 结果一定是false
console.log(Boolean(0))
console.log(Boolean(0.0))
console.log(Boolean('abc'/123))
console.log(Boolean(''))
console.log(Boolean(""))
console.log(Boolean(true))
console.log(Boolean(false))
console.log(Boolean(null))
var test;
console.log(Boolean(test))
console.log(Boolean(-9999999999e88888888888))
console.log(Boolean(""))
console.log(Boolean(" "))
运算符
算数运算符
+加 拼接 只要两边有一个是字符串 那么+ 充当拼接的功能
console.log(1+2);
-减
console.log(2-2);
*乘
console.log(4*2); /8
/除
console.log(4/2); //2
%取余
console.log(10%3); //1
**乘方
console.log(2**2); //4
赋值运算符
= 赋值 == 判断是否相等
var num = 100;
console.log(num);
// num = num + 100
// console.log(num)
num += 100 // 等同于num = num+100
console.log(num); // 200
-=
num -= 100 // num = num -100
console.log(num) // 100
*=
num *= 5; // num = num * 5
console.log(num); // 500
/=
num /= 5; // num = num /5
console.log(num); // 100
%=
num %= 3 // num = num %3
console.log(num)
// **=
num **=2 // num = num**2
console.log(num)
逻辑运算符
&& 两个都是true 才返回true
console.log(1==1)// true
console.log('1'==1) // true
// 两个= 仅仅是判断值是否相等 不判断类型
console.log('1'===1) // false === 判断值和类型是否都相等
|| 有一个是true 就返回true
! 取反
比较运算符
console.log(1==1)// true
console.log('1'==1) // true
// 两个= 仅仅是判断值是否相等 不判断类型
console.log('1'===1) // false === 判断值和类型是否都相等
console.log(1!='2') //判断值是否不相等 如果不相等 true 否则 false
console.log(1!=='2')// 判断值和类型是否都不相等 是 返回给true 否则 false
console.log(5>6)
console.log(5>=6)
console.log(5<6)
console.log(5<=6)
// 比较运算符 结果一定是布尔类型
// = 赋值
// == 值是否相等
// === 值和类型是否都相等
console.log(NaN == NaN)
/console.log(undefined == null) // true
// undefined 派生自 null
console.log(undefined === null) // false 因为类型不一致
自增减运算符
++ 自增运算符
var test = 10
console.log('--------------')
console.log(test) // 10
console.log(test++) // 10
console.log('--------------')
console.log(test) // 11
console.log(++test) // 12
console.log('--------------')
//前置 自增++test 运算前先自增1
后置自增 test++ 运算后再自增1
–自减运算符 与++ 一样 也分前后置。。。
分支结构
if条件语句
f(条件){
执行语句 //满足条件进到这里 这个语句执行
}
var age = 18;
if(age>=18){
console.log('你好')
}
if else语句
var year = 2022;
if((year % 4==0 && year % 100 !=0) || (year %400 ==0)){
console.log('是闰年')
}
else{
console.log('不是闰年')
}
//若满足if 里的条件就执行 若不满足则往下执行else
if else if语句
if(条件1){
执行语句; // 条件1 最终结果是true 这个语句被执行
}
else if(条件2){
执行语句; // 条件2 最终结果是true 这个语句被执行
}
else if(条件3){
执行语句; // 条件3 最终结果是true 这个语句被执行
}
else if(条件4){
执行语句; // 条件4
}
。。。。。
var height = 1.65
var weight = 60
var res = weight / height**2
if(res<18.5){
console.log('超轻')
}
else if(res>=18.5 && res<24.9){
console.log('恭喜正常')
}
else if(res>=24.9 && res<29.9){
console.log('轻度肥胖')
}
else if(res>=29.9){
console.log('重度肥胖')
}
else{
console.log('考虑下想吃啥就吃点啥')
} //依次执行
r height = 1.65
var weight = 60
var res = weight / height**2
if(res<18.5){
console.log('超轻')
}
else if(res>=18.5 && res<24.9){
console.log('恭喜正常')
}
else if(res>=24.9 && res<29.9){
console.log('轻度肥胖')
}
else if(res>=29.9){
console.log('重度肥胖')
}
else{
console.log('考虑下想吃啥就吃点啥')
} //依次执行