显式转换 转型函数 强制转换 Number(val) String(val) Boolean(val) parseInt(val) parseFloat(val) 一般性的结果 特殊的结果 Number(); console.log(Number(“abc”), Number(“123abc”), Number(",!a1")); //NaN not a number console.log(Number(“123”)); //123 console.log(Number(" “), Number(”")); //0 0
String()
console.log(String(123)); //“123” console.log(String(true), String(undefined), String(null)); */
Boolean()
console.log(Boolean(0), Boolean(1), Boolean(-1), Boolean(10));
console.log(Boolean(NaN)); //false
//除了空字符串转false之外,其他的都是true
console.log(Boolean(""), Boolean(" "), Boolean("0"), Boolean("abc"));
console.log(Boolean(undefined)); //false
console.log(Boolean(null)); //false */
parseInt() 取字符串中以数字开头的整数部分,如果不是以数字开头得到NaN, 还可以用来取整 parseFloat() console.log( parseInt(“123abc”), //123 parseInt(“123.1abc”), //123 parseInt(“a123bc”), //NaN parseInt(""), //NaN parseInt(" "), //NaN parseInt(123.11) //123 ); 隐式转换 不同类型的值在进行运算时,内部发生的类型转换 //从运算符的角度 //算术运算符 //对于+,如果有一个操作数为字符串,另外一个操作数会隐式转换称字符串,进行拼接,如果有两个操作数为字符串,直接拼接,如果没有字符串,转数值 //对于其他的算术运算符,两个操作数的类型都会隐式转换为数值类型,进行四则运算 console.log(“a” + 10); //“a10” console.log(“a” + “10”); //“a10” console.log(“a” - 10); // NaN console.log(true + 1); //2 console.log(true + undefined); //NaN 如果两个操作数都是字符串,按位比较,否则其他类型转成数值进行比较 console.log(true > 0); //true console.log(false == 0); //true console.log(“123” > 20); //true
运算符也称操作符 操作数 //一元运算符(如果一个运算符只需要一个操作数) 二元运算符(如果一个运算符只需要两个操作数) 三元运算符 逻辑运算符 逻辑与 && console.log(true && true, true && false, false && true, false && false); 逻辑或 || console.log(true || true, true || false, false || true, false || false); 逻辑非 ! console.log(!true, !false);
逻辑与 如果第一个操作数为false或能隐式转换成false,结果为第一个操作数,如果第一个操作数为true或能隐式转换成true,结果为第二个操作数 console.log(10 && 2); //2 console.log(0 && 1); //0
逻辑或 如果第一个操作数为true或能隐式转换成true,结果为第一个操作数,如果第一个操作数为false或能隐式转换成false,结果为第二个操作数 console.log(10 || 2); //10 console.log(0 || 1); //1
console.log(!10, !0); //false true
自增自减 a++ 和 ++a 参与运算时或者直接当结果输出时是不一样的 不一样的在哪儿呢? a++ 是后加,先取a原来的值参与运算,然后a再加1,++a是先加,就是a先加1,然后取a加1后的值参与运算
程序结构 .顺序结构 var a = 10; var b = 20; var c = a; a = b; b = c; console.log(a, b); //20 10 分支结构 单分支: var weather = “rain”; if (weather == “rain”) { console.log(“带雨具”); } if (weather != “rain”) { console.log(“不带雨具”); } 双分支: if (条件) { //staements 条件满足时,执行的语句 } else { //staements 条件不满足时,执行的语句 } */ 多分支 if (a > 0) { console.log(a + “大于0”); } else if (a == 0) { console.log(a + “等于0”); } else { console.log(a + “小于0”); } */ 三元运算符 三个操作数 操作数1 ? 操作数2 : 操作数3 操作数1 表示的是条件 如果条件为真 运算结果为第二个操作数,否则为第三个操作数 有一个变量a 如果a的值大于0 就将a赋给b 否则将10赋给b var a = 1; if (a > 0) { var b = a; } else { var b = 10; } 三元写法 var b = a>0 ? a : 10; 判断数据类型 typeof 用于判断某个值的类型 6种数据类型,typeof检测时得到5种结果 console.log(typeof 10); // “number” console.log(typeof “10”); // “string” console.log(typeof true); // “boolean” console.log(typeof undefined); //“undefined” console.log(typeof null); // “object” console.log(typeof {}); // “object” 两个及以上的typeof一起使用时,结果只有一种 “string” console.log(typeof typeof 10, typeof typeof undefined); typeof “number” typeof “undefined”
|