目录
4.其他类型转为浮点型 parseFloat(同parseInt)
一、数据类型检测
typeof 类型检测
var num = 12;
var str = '男';
var boo = false;
var und;
var nul = null;
console.log(typeof num); //number
console.log(typeof str); //string
console.log(typeof boo); //boolean
console.log(typeof und); //undefined
console.log(typeof nul); //object
只有null是object类型 其他基本数据类型都是自己的名字
二、数类型转换
1.其他类型转换为布尔
(1)数字类型转换Boolean
只有0会被转换为false 其他所有非0数字都会被转换为true
console.log(Boolean(1));
console.log(Boolean(0));
console.log(Boolean(3));
console.log(Boolean(-4));
(2)字符串类型转换Boolean
只有空字符串会被转换为false,其他所有非空都会被转换为true
console.log(Boolean("小汽车")); //true
console.log(Boolean("滴滴滴")); //true
console.log(Boolean("马路开花二十一")); //true
console.log(Boolean("今天下雨了23344!@#$%^&*()_+")); //true
console.log(Boolean("")); //false
(3)undefined转Boolean
undefined表示未定义 空 所以会被转换为false
console.log(Boolean(undefined)); //false
(4)null转Boolean
null表示空 所以会被转换为false
console.log(Boolean(null)); //false
总结:
数据类型转换首字母要大写,方法名就是数据类型名
非字符串、非零数字、对象 都为true
空字符串、0、null、Undefined 都为false
2.其他类型转数字Number
(1)字符串转number
字符串通过number转换后,如果字符串中包含非数字字符,那么结果为NaN
console.log(Number(true)); //1
console.log(Number(false)); //1
console.log(Number("溜溜球")); // NaN Not a Number
console.log(Number("3溜溜球")); // NaN Not a Number
console.log(Number("3")); // 3
console.log(Number("-3e2")); // 3
(2)undefined转boolean
console.log(Number(undefined)); //NaN Not a Number
(3)null转boolean
console.log(Number(null)); //null 空 0
3.其他类型转为整数 parseInt
console.log(parseInt("3溜溜球")); //3
console.log(parseInt("溜3溜球")); //NaN
console.log(parseInt(true)); //NaN
console.log(parseInt(null)); //
console.log(parseInt("3.555555555555")); //3
console.log(parseInt("3e2")); //3
注:只要碰到第一个不是数字的字符,后边的内容就全部不要
4.其他类型转为浮点型 parseFloat(同parseInt)
console.log(parseFloat("3.强强强强555555555555")); //3
console.log(parseFloat("3.55强555555555555"));//3.55
5.其他类型转字符串 String
console.log(String(true)); //true
console.log(String(123)); //123
console.log(String(undefined)); //undefined
6.其他类型转字符串 toString
针对数字可进制转换
var num = 1.1;
console.log(num.toString(2)); //1.00011001100110011001100110011001100110011001100110
三、隐式转换(浏览器自给)
字符串类型的值必须加 " "
isNaN is not a number 是不是数字
true 不是数字 false 是数字
var str1 = '123';
var str2 = '456';
console.log(str1 - str2); //-333
// isNaN 小括号里面的内容是不是NaN
console.log(isNaN(123)); //false
console.log(isNaN('aa123')); //true
四、算术运算符
+ 加法运算 拼接 因为+号两边有字符串,所以会出现拼接
- 减法运算 * 乘法运算 / 除法运算 均有隐式转换
% 取余 如果余数为0 表示可以被整除
1.数字数据类型运算
var num1 = 10;
var num2 = 15;
console.log(num1 + num2); //25
console.log(num1 - num2); //-5
console.log(num1 * num2); //150
console.log(num1 / num2); //0.6666666666
2.字符串类型运算
+ 加法运算 拼接 因为+号两边有字符串,所以会出现拼接
var str1 = "15";
var str2 = "20";
console.log(str1 + str2); // 1520
console.log(str1 - str2); // -5
console.log(str1 * str2); //300
console.log(str1 / str2); //0.75
console.log(str1 + num2); // 1515
console.log(num2 + str1); // 1515
3.% 取余 如果余数为0 表示可以被整除
console.log(15 % 6);
4. () 提高优先级
(1).先算括号里面的
(2).再算乘除
(3).最后算加减
console.log((1 + 2 + 3) * 5 / (1 + 6) - 8); //-3.7142857142857144
注:0.1+0.2 在计算机中,不能准确的计算出来
0.1+0.3的答案为0.30000 0000 0000 0000 0004
十进制小数转换为二进制小数会损失精度
console.log(0.5 + 0.5); //1
console.log(0.1 + 0.2); //0.30000000000000004
五、赋值运算符
赋值运算符 =
将等号右边的值赋予给等号左边的变量
var num = 10;
var num1 = num;
等号右边的num表示的是num的值,等号左边的num表示的是num的变量
num = num + 5;
num = num - 5;
num = num * 5;
num = num / 5;
简写
num += 5;
num -= 5;
num *= 5;
num /= 5;
六、自增自减运算符
num++ 与 ++num 均表示自我增加1
num++;
++num;
num-- 与 --num 均表示自我减少1
num--;
--num;
符号 在前 和 在后 效果是不一样的
- 符号如果在变量的后面表示 先将变量拿来使用 之后在自增
var num = 99;
console.log(num++ + 1); // 100
- 符号如果在变量的前面表示 先将变量自增 然后在拿去使用
var num = 99;
console.log(++num + 1); // 101
七、逻辑运算符
1.与 、和、且 : &&
- 两个条件只要有一个不满足 最终的结果就是不成立 只有所有都成立 最终的结果才是成立
- 如果第一个条件 成立 那么会直接输出第二个条件
- 如果第一个条件不成立 那么就会直接输出第一个条件
console.log(true && false); // false
console.log(true && true); // true
console.log(false && false); // false
console.log(1 && 0); //0
console.log(0 && ''); //0
2.或 、或者 : ||
- 两个条件只要有一个成立 最终的结果就是成立 如果都不成立 结果不成立
- 如果第一个条件成立 就会直接输出第一个条件
- 如果第一个条件不成立 就会直接输出第二个条件
console.log(true || false); // true
console.log(false || false); // false
console.log(true || true); // true
console.log(1 || 0); //1
console.log(0 || ''); //0
3.非、不是、 取反 : !
- 非只会对布尔值生效 非布尔值会先转换为布尔值再取反
- 最终的结果一定是一个布尔值
console.log(!3); //false
八、关系运算符
1.大于 >
var num1 = 15;
var num2 = 9;
console.log(num1 > num2);//true
2.小于 <
console.log(num1 < num2);//false
3.等于 ==
- 一个 = 表示 赋值 == 表示等于
console.log(num1 == num2);//false
- 等于 == 会将等号两边的内容 隐式转换成相同的数据类型
console.log(1 == "1");//true
- 全等于 === 两边的内容必须完全相同 类型也必须相同
console.log(1 === "1");//false
- 不全等于 !==
console.log(1 !== "1");//true
4.大于等于
console.log(num1 >= num2);//true
5.小于等于
console.log(num1 <= num2);//false
6.不等于
console.log(num1 != num2);//true
结论:关系运算符 最终输出的结果一定是一个布尔值 更像是一个判断条件
九、运算符优先级
- ( )优先级最高
- 一元运算符 ++ -- !
- 算数运算符 先* / % 后 + -
- 关系运算符 > >= < <=
- 相等运算符 == != === !==
- 逻辑运算符 先&& 后||
- 赋值运算符
十、if判断语句
if(条件表达式) {
代码块1
}
- 如果 条件表达式的结果是true 那么就会执行代码块1
- 如果条件表达式的结果是false 那么就不会执行代码块1 然后 直接结束if
if(条件表达式) {
代码块1
}else{
代码块2
}
- 如果条件表达式的结果是true 那么就会执行代码块1
- 如果条件表达式的结果是false 那么就会执行代码块2
十一、for循环语句
1.for循环语句
可以重复执行代码
for(1.循环从几开始;2.循环到几结束;3.循环是怎么执行的) {
4.代码块1
}
只要2 条件成立 for循环就会执行代码块
2.累加器
var sun = 0;
for (var i = 1; i <= 10; i++) {
// console.log(i);
sun = sun + i;
// sun += i;
}
console.log(sun);