JS基础值基础概念下(关系,相等,条件操作符,if,do-while,while,for,for-in,lable,break,continue,with,switvh语句)
2020-02-14 00:18
543 查看
1.关系操作符
比较符:大于(>),小于(<),大于等于(>=),小于等于(<=) 比较规则: 1.两个操作数都是数值,会进行数值的比较 2.两个都是字符串,会比较两个字符串对应的字符编码值 3.如果有一个操作数是数值,会将另外一个转换成数值,然后进行数值的比较 4.如果有一个操作数是对象,会调用valueOf()的方法按照之前的方法比较,如果没有 valueOf()方法,会调用toString()方法,按照之前的方法比较 5.如果有一个操作数是布尔值,会将其转化成数值,然后进行比较 注意: 1.比较字符串的时候,实际比较的是两个字符串对应位置的每个字符的字符编码值,经过比较会返回一个布尔值 2.大写字母的字符编码全部小于小写字母的字符编码 var result = 'Brinck' < 'alphabet' ; //true 原因:B的字符编码是66,a的字符编码是97 如果真正安好字母表顺序比较,必须转换成相同的大小写格式 var result = 'Brinck'.toLowerCase() < 'alphabet'.toLowerCase ; //false 3.数值的比较: var result = '23' < ‘3’ ; //true 因为‘2’的字符编码是50,‘3’的字符编码是51 var result = '23' < 3 ; //false ‘23’会被转化成23 var result = 'a' < 3 ; //false 此时a会被转换成NaN,NaN与任何数比较都是false
2.相等操作符
相等:先转换在比较 全等:仅比较不转换
1.相等和不相等
操作符:相等 == ; 不相等 != 特点: 1.如果两个操作数使用相等符号而且相等,返回true, 2.如果两个操作数使用不相等符号而且不相等,返回true 3.会进行强制转换 转换规则: 1.如果有一个操作数布尔值,会将其转换成数值,fale转换成0,true转换成1 2.如果有一个操作数数字符串,另外一个是数值,会将字符串转换成数组进行比较 3.如果一个操作数是对象,另外一个不是,会调用对象的valueOf()方法,将结果按照治安规则比较 4.null和undefined相等,且两者都不能转换成其他他值 5.NaN不等于任何数,包括NaN 6.两个操作数都是对象,会比较他们是不是一个对象,如果都指向一个对象返回true
2.全等和不全等
操作符:全等 === 不全等 !== 特点:除了比较之前不转换操作数外,其他和相等和不相等一样 var result1 = ( '55' == '55' ) ; //true ; var result2 = ( '55' === '55' ) ; //true ; var result3 = ( '55' == 55 ) ; //true ; var result4 = ( '55' == 55 ) ; //false ; null == undefined //true; null === undefined //false;
3.条件操作符
语法: 条件a ? 结果b : 结果c; 解析 :如果满足条件a,返回结果b,否则返回结果c 举例: 5 > 3 ? '5大于3' : '5小于3' ; //结果是‘5大于3’ 5 < 3 ? '5大于3' : '5小于3' ; //结果是‘5小于3‘
4.语句
1.if语句
语法 : if ( 条件 ){ //符合条件时执行的代码 }else{ //不符合条件时执行的代码 } 举例: if ( a > b ) { console.log('a大于b') } else { console.log('a小于b') }
2.do-while语句
语法: do { // 放执行的代码 } while ( // 判断条件 ) 举例: var i = 0 ; do { i += 2 ; } while( i < 10 ) ; 在这个例子中,只要i小于10,就会一直执行下去,每次递增2 注:1.do-while适合至少执行一次的情形 2.要有条件出口,否则会死循环,出现栈溢出的情况
3.while语句
语法: while ( 条件 ) { 执行的代码 } 举例: var i = 0 ; while ( i < 10 ) { i + = 2 ; } 注:1.代码在执行前会先进行判断,符合条件执行代码,不符合不会执行 2.要有条件出口,否则会死循环,出现栈溢出的情况
4.for语句
for ( 初始条件,判断条件,改变初始条件) { // 执行代码 } 示例: for ( var i = 0 ; i < 10 ; i ++ ) { console.log ( i ) ; } console.log ( i ) // 可在循环外部访问变量,但这里只会输出最终结果10 也可以不在for里面定义变量 var i ; for ( i = 0 ; i < 10 ; i ++ ) { console.log ( i ) ; } 也可以省略三个表达式,会进入无限循环 for ( ; ; ) { }
5.for-in语句
for ( var propName in window ) { console.log ( propName ) ; //将window里面的每一个属性赋值给propName,输出顺序根据浏览器不同而不同 } 注: 1.es5之前如果要迭代的变量值是null或者undefined,会报错,es5之后不在报错,会不执行循环体 2.在使用for-of 之前,要确认是否为null或者undefined 3.Safari3之前版本有一个bug,会导致某些属性值返回两次
6.label , break , continue语句
语法 : label : statement ; 描述 : 在js代码中添加标签,以便将来使用,可与break和continue使用,break,continue用于跳出循环, 但两者存在一定区别,break是终止循环,continue是跳出当前循环,进入下一个循环 var i, j; loop1: for (i = 0; i < 3; i++) { //The first for statement is labeled "loop1" loop2: for (j = 0; j < 3; j++) { //The second for statement is labeled "loop2" if (i === 1 && j === 1) { continue loop1; } console.log('i = ' + i + ', j = ' + j); } } // Output is: // "i = 0, j = 0" // "i = 0, j = 1" // "i = 0, j = 2" // "i = 1, j = 0" // "i = 2, j = 0" // "i = 2, j = 1" // "i = 2, j = 2" // Notice how it skips both "i = 1, j = 1" and "i = 1, j = 2" var i, j; loop1: for (i = 0; i < 3; i++) { //The first for statement is labeled "loop1" loop2: for (j = 0; j < 3; j++) { //The second for statement is labeled "loop2" if (i == 1 && j == 1) { break loop1; } console.log("i = " + i + ", j = " + j); } } // Output is: // "i = 0, j = 0" // "i = 0, j = 1" // "i = 0, j = 2" // "i = 1, j = 0" // Notice the difference with the previous continue example
7.with语句
语法 : with(expression) statement var qs = location.search.substring(1); var hostName = location.hostName; var url = location.href; 如果使用with语句的话: with(location){ var qs = search.substring(1); var hostName = hostName; var url = href; } 说明: 使用with语句关联了location对象,意味着在with语句代码块内部,每个变量首先会被认为是一个局部变量, 而如果局部变量如股票找不到变量的定义,会查询location对象中是否有同名属性,如果有,以location 对象属性的值作为变量的值 注: 1.严格模式下不能使用with,会视为语法错误 2.大量使用with语句会导致性能低下,也会给调试代码造成困难
8.switch语句
语法: switch(expression){ case value : statement break ; case value : statement break ; default : statement } 说明: 1.相当于执行了很多个if-else语句 2.每一个case含义:如果表达式等于这个值,则执行后面的代码 3.break用于跳出switch语句,如果没有break的话,执行完当前case,会接着执行下一个case 4.default用于表达式不匹配前面任何一种情况时执行的代码 5.可以在switch语句中使用任何数据类型 6.case的值不一定是常量,可以是变量,甚至是表达式
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- if,continue,break,while,do-while, switch,return,foreach,for等条件语句的使用
- [置顶] 循环语句if(){}else{}、if(){}else if(){}...else{}、do{}while()、for(){}、with(){}break/continue语句
- if语句、do-while语句、while语句、for语句、for-in语句、label语句、break和continue
- js---javaScript(循环语句的使用实例)for while do....while(转移语句): break, continue , return
- Java基础第4天+switch语句、for,while,do...while循环语句、break,return,continue控制跳转语句...
- Java基础巩固(控制流程语句之---if 判断语句、switch选择判断语句、while循环语句、for循环语句的格式,转义字符、break关键字、continue关键字)
- 第3章 基本概念(5)语句:if语句 do-while语句 while语句 for语句 for-in语句......
- Python基础(条件判断和循环) if elif else for while break continue;
- Java基础---条件语句、Switch、while、do while、for、break、continue
- C语言中流程控制语句(if,switch,for,while,do-while,continue,break,return)
- 04java基础之循环(for、while、do..while之间的区别,用法等)、break、continue。++二重循环
- if条件和for循环语句、while、do..while、switch语法
- Java基础day3( if和switch、while和do..while的区别,for循环,break和continue)
- JavaSE (七)循环控制语句:while、do....while、for,break和continue用法
- 如何熟练掌握python的if、while和for以及与它们相关的break和continue语句 通过什么样的形式, 做题吗?
- java基础四(switch;for;while;do...while;break;continue;return)
- python基础语法(数据类型、if、while、for、break、continue、IO操作)
- C#基础(4)——break语句、continue语句、while循环、do-while循环、for循环、foreach循环
- Python学习--控制语句:if, while, for, break, continue
- java程序流程控制,if语句,switch语句,while语句,do while语句,for 语句,break关键字,continue关键字