-
隐式类型转换
-
算数运算符
— * / % :默认都进行数字的隐式转换
+:
如果有字符串,隐式转换为字符串
没有字符串,默认转换为数字
如果有对象,默认转换为字符串console.log(1+ 1 + '1' + true) // 21true console.log(true + true + undefined + '') // 'NaN' console.log(true + true + ' ' + undefiend) // '2undefined' -
关系运算符
<, >, >=, <=
如果有布尔值,先转换为数字
如果有数字,都默认隐式转换为数字
如果都为字符串,进行ASCII编码比较console.log(null >= 0); // true console.log(undefined <= 0); // false console.log(2 == true); // false console.log('true' == true); // false console.log(1 == '1') // true console.log('2' > '11'); console.log('112' > '1119'); console.log('b' > 'a'); console.log(1 < 'a');== :null 和 undefined 互相相等,且等于自身,跟其他的都不相等
console.log(null == undefined); //true console.log(null == null); // true console.log(null == 0); // false=== :不会进行隐式转换(恒等于)
先比较数据类型, 在比较值是否相等,如果都相等,才会返回true; -
逻辑运算符
!:全部隐式转换为布尔类型,然后再取反console.log(!''); // true console.log(!' '); // false|| :有一真即返回
console.log(10 || 0); // 10 console.log('' || false); // false console.log(0 || 100); //100 console.log('abcd' || 'efg'); // 'abcd'&& :有一假即返回
console.log(10 && 0); // 0 console.log('' && false); // '' console.log(0 && 100); //0 console.log('abcd' && 'efg'); // 'efg'
-
-
三种弹窗
函数 (方法) 执行,一定有返回值!!!提示框 alert()
返回值:undefined输入框 prompt()
返回值:点击确定会得到用户输入的字符串;点击取消会得到null警告框 confirm()
返回值:点击确定返回true,点击取消返回false
注意点:Js是单线程语言,弹窗会阻塞JS代码运行
-
进制转换
二进制 0 1
八进制 0 - 7
十进制 0 - 9
十六进制 0 - ftoString(): 10进制转换为其他进制, 返回一个字符串
var a = 10; console.log(a.toString(8)) // 12parseInt(): 其他进制转换为10进制,返回一个数字
var b = 7; var c = 1101; console.log(parseInt(b, 2)); //NaN console.log(parseInt(b, 16)); //7 console.log(parseInt(c, 2)); //13 console.log(parseInt(c, 8)); //13 -
分支语句
单分支语句:if 有一个条件满足就执行代码块,后面无论条件是否成立,都不执行if(条件表达式) { } if(条件表达式) { }else { } if(条件表达式){ }else if { }else { } var a = 3 if ( a > 0 ) { alert(a) } else { alert('a 小于 0') }
多分支语句: switch 要匹配的值和匹配的值要恒等于,才可以执行代码
case穿透:有一个case满足条件就执行代码, 无论后面的case是否满足
条件都执行.如果有default也执行
break: 当switch语句运行时, 遇见break,就终止语句
switch(要选择的值) {
case 要匹配的值:
代码块
case 要匹配的值:
代码块
default:
代码块
}
var a = 2;
switch(a) {
case 1:
alert('这个数字是1');
case '10':
alert('10');
case 2:
alert('这个数字是2');
default:
// 所有case都不满足, 默认执行default
alert('否则');
}
区别:swich 适合使用在固定值,不能进行逻辑判断
if 适合使用范围逻辑判断,且里面的内容多样,可以是字符串,数值等