01-逻辑与和逻辑或

  1. // 逻辑与 && (and)<br /> // 逻辑或 || (or)<br /> // 布尔表达式(返回值是布尔值的表达式) > < >= <= == != === !== !<br /> // 逻辑运算符原理<br /> // 短路逻辑(短路运算符) 是计算机对逻辑运算符(逻辑与和逻辑或)的一种求值策略,它叫做最小化求值<br /> // 它的核心思想是 当一个条件可以符合逻辑运算符要求时 则不需要对另外一个条件进行求值<br /> // 不管是哪个逻辑运算符 都会先对左边的表达式进行求值<br /> // 左边的值为true 左边一个true 无法决定逻辑与的结果 所以需要对右边求值 true <br /> // 当左边这个结果无法确定逻辑与结果时 则返回右边的结果<br /> // console.log(3>2 && 2>1);<br /> // 左边的值为 false 此时可以决定逻辑与的结果 所以不需要对右边进行求值<br /> // 返回左边的结果<br /> // console.log(5<1 && 2>1);<br /> // console.log(2 && 5);<br /> // console.log(0 && 7);<br /> // console.log(7 && undefined);<br /> // console.log('ok'&&'no');<br /> // console.log(0 && false);<br /> // 不管是哪个逻辑运算符 都会先对左边的表达式进行求值<br /> // 左边的值为true 可以决定逻辑或的结果 所以不需要对右边进行求值<br /> // 返回左边的结果<br /> // console.log(2>1 || 5>7);<br /> // console.log(3 || 5);<br /> // console.log(null || 7);<br /> // console.log(false || 5+5);<br /> // 总结:<br /> // 1. 逻辑与运算符 左边表达式如果为true 返回右边 否则返回左边<br /> // 2. 逻辑或运算符 左边表达式如果为true 返回左边 否则返回

02-赋值运算符

// 赋值运算符 指的是 赋值符加运算符
// = 赋值符
// 作用是将右边的值赋予给左边的变量
// 符号结合性 右到左
// 赋值运算符的优先级和 赋值符相同 同为2
// +=
var num = 7;
// num+=6; // num = num + 6;
// console.log(num);
// num+=3+2;
// console.log(num);
// -=
// num-=2; // num = num - 2;
// console.log(num);
// =
// /=
// %=
// *
=

03-字符连接符

// + 在ECMAScript中有两种含义
// 1. 加法(运算) 返回结果是number类型
// 2. 连接 返回结果是string类型
// += 也是以上两种情况
// 当运算符 (+ 或 +=) 左右有任意一边是字符串类型时 它作为连接符使用 否则为运算符
// 连接 指的是将字符串拼接在一起
// 当ECMAScript中的 + 或 += 被当作连接符时 另外一边不是字符串的数据会自动转换成字符串类型
// console.log(2+2);
// console.log(2+’2’); // ‘22’ 2被转换成’2’ 然后进行连接
// console.log(3+’true’); // ‘3true’
// console.log(true + ‘7’); // ‘true7’
// console.log(false + ‘7’); // ‘false7’
// console.log(‘NaN’+NaN); // ‘NaNNaN’
// NaN和任何数进行任何运算 结果都是 NaN
// console.log(null+undefined); // NaN
// console.log(null+null); // 0
// console.log(undefined+5); // NaN
// console.log(undefined+’7’); // ‘undefined7’
// console.log(null+’55’); //‘null55’
// var o = new Object();
// console.log(o+’abc’); // ‘[object Object]abc’
// ————————————————————————-
// 总结:
// 数字 布尔值 字符串 null 和 undefined 转字符串结果都是 原样转换
// ECMAScript中 所有的数据类型 都可以被转换成 Number Boolean String 这三种基本数据类型

4-条件运算符

// 条件运算符( 三元运算符 / 三目运算符 )
// 基本语法:
// 表达式1 ? 表达式2 : 表达式3 ;
// 表达式1 是一个布尔表达式
// 条件运算符的结果 取决于 表达式1的结果
// 表达式1的结果为 true 则条件运算符的结果 为 表达式2 否则为表达式3
// var age = 19;
// var message = age>=18 ? ‘成年人,去蹦迪’ : ‘未成年,去学习’;
// console.log(message);
// ‘ok’?alert(1):alert(2);
// var a = 10;;
// a && console.log(‘ok’);

5-隐式转换

  1. // 隐式转换<br /> // ECMAScript 中 在运算过程中自动发生的数据类型转换 叫做 隐式转换<br /> // console.log(21+'2'); // '212'<br /> // console.log(5-'2'); // 3<br /> // console.log('5' * '7'); // 35<br /> // console.log(13 + null); // 13<br /> // console.log(21 - undefined); // NaN<br /> // console.log('12a'*2); // NaN<br /> // console.log(15+ +'2'); // 17<br /> // -----------------------------------------<br /> // 可以使用一元 + 将各种数据转换成number<br /> // console.log(+'22');<br /> // console.log(+true);<br /> // console.log(+false);<br /> // console.log(+NaN);<br /> // console.log(+undefined);<br /> // console.log(+null);<br /> // var o = new Object();<br /> // console.log(+o);<br /> // --------------------------------------------<br /> // 可以使用连接符将任意数据转换成字符串<br /> // console.log(true +'');<br /> // console.log(undefined +'');<br /> // console.log(false +'');<br /> // console.log(null+'');<br /> // console.log(NaN +'');<br /> // console.log(2+'');<br /> // var o = new Object();<br /> // console.log(o+'');<br /> // -------------------------------------------<br /> // 可以使用两个逻辑非运算符将任意数据转换成布尔类型<br /> // console.log(!!null);<br /> // console.log(!!123);<br /> // ----------------------------------------------------------------------------------<br /> // 使用 ++ / -- 时 需要注意语法错误<br /> // 两个符号中是有赋值操作的 所以必须要有变量<br /> // console.log(null++);<br /> // console.log(++3)

05-强制类型转换

  1. // 强制类型转换<br /> // 使用类型转换函数 进行的数据类型转换操作 叫做强制类型转换<br /> // Number()<br /> // 将一个字符串解析成number类型 如果无法解析则返回 NaN<br /> // console.log(Number('55')); // 55<br /> // console.log(Number('55abc')); // NaN<br /> // console.log(Number(true)); // 1<br /> // console.log(Number(false)); // 0<br /> // console.log(Number(undefined)); // NaN<br /> // Number函数的结果 和 一元+ 结果相同 推荐使用一元+ 代替该函数<br /> // ------------------------------------------------------------------<br /> // parseInt()<br /> // 将一个字符串解析成number类型 并只保留整数部分 若没有可解析的部分则返回NaN<br /> // console.log(parseInt('55')); // 55<br /> // console.log(parseInt('55.123')); // 55<br /> // console.log(parseInt(12.34)); // 12<br /> // console.log(parseInt('12.34a')); // 12<br /> // console.log(parseInt('1a23.4')); // 1<br /> // console.log(parseInt('a123.4')); // NaN<br /> // -------------------------------------------------------------------<br /> // parseFloat()<br /> // 将一个字符串解析成number类型 并保留浮点数 若没有可解析的部分则返回NaN<br /> // console.log(parseFloat('123')); // 123<br /> // console.log(parseFloat('123.456')); // 123.456<br /> // console.log(parseFloat('123.45a6')); // 123.45<br /> // console.log(parseFloat('12a3.456')); // 12<br /> // console.log(parseFloat('a123.456')); // NaN<br /> // -------------------------------------------------------------------<br /> // toString()<br /> // ECMAScript 所有的数据 都可以被转成字符串<br /> // 语法: 数据.toString()<br /> // 不是所有的数据都有toString方法 null 和 undefined 无法使用toString<br /> // toString函数的作用是将操作的数据转换成 字符串类型<br /> // var num = 12;<br /> // console.log(num.toString());<br /> // console.log((123).toString());<br /> // console.log(true.toString());<br /> // console.log('abc'.toString());<br /> // console.log(null.toString());<br /> // console.log(undefined.toString());<br /> // -----------------------------------------<br /> // number 类型 toString 的应用<br /> // 对number类型进行toStirng操作 可以转换数值的进制数<br /> // var num = 25;<br /> // console.log(num.toString(2)); // 转换2进制<br /> // console.log(num.toString(8)); // 转换8进制<br /> // console.log(num.toString(16)); //转换16进制<br /> // ------------------------------------------<br /> // Boolean()<br /> // 将数据转换成布尔类型<br /> // 建议使用 !!