运算符和程序结构

演讲者:交互开发课题组

内容提纲

  1. 运算符
  2. 条件语句
  3. 循环语句
  4. 案例练习

命名规范

  • 正确
    • 可以包含字母、数字、下划线、美元符号
    • 不能以数字开头
  • 规范
    • 匈牙利命名法
    • 表示数据类型

命名规范

类型 前缀 类型 实例
布尔值 b Boolean bIsComplete
整数 i Integer iItemCount
浮点数 f Float fPrice
字符串 s String sUserName
数组 a Array aItems
函数 fn Function fnHandler
对象 o Object oDiv1
正则表达式 re RegExp reEmailCheck
变体变量 v Variant vAnything

运算符

  • 算数运算符
  • 赋值运算符
  • 比较运算符
  • 布尔运算符
  • 位运算符
  • 其他运算符

算数运算符

  • 加法运算符(Addition):x + y
  • 减法运算符(Subtraction): x - y
  • 乘法运算符(Multiplication): x * y
  • 除法运算符(Division):x / y
  • 余数运算符(Remainder):x % y
  • 自增运算符(Increment):++x 或者 x++
  • 自减运算符(Decrement):--x 或者 x--
  • 数值运算符(Convert to number): +x
  • 负数值运算符(Negate):-x

加法运算符 +

  • 算数运算符里的加法运算符
  • 字符串连接符
  • 运算过程
    • 如果操作数是对象,先自动转成原始类型的值()
    • 两个操作数都是原始类型的值以后,只要有一个操作数是字符串,则两个操作数都转为字符串,执行字符串连接运算。
    • 两个操作数都为数值,执行加法运算。
<script>
'1' + {foo: 'bar'} // "1[object Object]"
'1' + 1       // "11"
'1' + true    // "1true"
'1' + [1]     // "11"
'3' + 4 + 5   // "345"
3 + 4 + '5'   // "75"
[1, 2] + [3]  // "1,23"
</script>

减、乘、除

  • 加法运算符以外的其他算术运算符(比如减法、除法和乘法),都不会发生重载。
  • 所有操作数一律转为数值,再进行相应的数学运算。
<script>
1 + '2' // '12'
1 - '2' // -1
1 * '2' // 2
1 / '2' // 0.5
</script>

余数运算符

  • 运算结果的正负号由第一个运算子的正负号决定。
  • 为了得到正确的负数的余数值,需要先使用绝对值函数。
<script type="text/javascript">    
-1 % 2 // -1
1 % -2 // 1

// 错误的写法
function isOdd(n) {
  return n % 2 === 1;
}
isOdd(-5); // false
isOdd(-4); // false

// 正确的写法
function isOdd(n) {
  return Math.abs(n % 2) === 1;
}
isOdd(-5); // true
isOdd(-4); // false
</script>

赋值运算符

  • 赋值运算符(Assignment Operators)用于给变量赋值。
  • 最常见的赋值运算符,当然就是等号(=),表达式x = y表示将y的值赋给x。
  • 11个复合的赋值运算符
    <script type="text/javascript">                
    x += y // 等同于 x = x + y
    x -= y // 等同于 x = x - y
    x *= y // 等同于 x = x * y
    x /= y // 等同于 x = x / y
    x %= y // 等同于 x = x % y
    x >>= y // 等同于 x = x >> y
    x <<= y // 等同于 x = x << y
    x >>>= y // 等同于 x = x >>> y
    x &= y // 等同于 x = x & y
    x |= y // 等同于 x = x | y
    x ^= y // 等同于 x = x ^ y
    </script>
    

比较运算符

  • 比较运算符用于比较两个值,然后返回一个布尔值,表示是否满足比较条件。
  • 比较运算符可以比较各种类型的值,不仅仅是数值。
  • JavaScript 一共提供了8个比较运算符
<script type="text/javascript">                
     == 相等
     === 严格相等
     != 不相等
     !== 严格不相等
     < 小于
     <= 小于或等于
     > 大于
     >= 大于或等于
</script>

比较运算符

  • 字符串按照字典顺序进行比较
  • 非字符串的比较
    • 两个原始类型的值的比较,除了相等运算符(==)和严格相等运算符(===),其他比较运算符都是先转成数值再比较。
    • 如果操作数是对象,会转为原始类型的值,再进行比较。 -
  • 相等运算符
    • JavaScript 提供两种相等运算符:==和===
    • 相等运算符(==)比较两个值是否相等
    • 严格相等运算符(===)比较它们是否为“同一个值”(类型相同,值相同)

布尔运算符

  • 取反运算符:!
  • 且运算符:&&
  • 或运算符:||
  • 三元运算符:?:

布尔运算符

  • && 实现条件判断
  • || 实现存在判断,函数默认值
<script type="text/javascript">                
if (a<5){
    console.log("a<5");
}
//等价于
a<5 && console.log("a<5");

//存在判断
var oTd=oTd||document.getElementById("oTd");
//实现函数参数默认值
function getNum(num){
    var num=num||4;
    console.log(num);
}
</script>

条件语句

  • if 结构
  • if…else结构
  • switch结构
  • 三元运算符 ?:

循环语句

  • while循环
  • for循环
    • For 循环
    • For/In 循环
  • do…while循环
  • break语句和continue语句
    • break语句用于跳出代码块或循环。
    • continue语句用于立即终止本轮循环,返回循环结构的头部,开始下一轮循环。
  • 标签(label)
    • 语句的前面有标签(label),相当于定位符,用于跳转到程序的任意位置。
    • 标签通常与break语句和continue语句配合使用,跳出特定的循环。

案例练习

隔行变色和删除表行

交互开发

旨为前端开发工程师的前端开发课程