整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

初学JavaScript之分支或判断语句

体上程序代码的执行是从上到下顺序执行,在某些具体阶段可以会产生分支和循环重复的情形,形成了各种不同的程序语句,构成了不同的程序结构。主要有顺序结构,分支结构和循环结构。以前的代码主要是按程序的顺序执行,以后的代码会是这三者的不同组合。

分支语句

1 语句

如果说表达式(例如:num1+num2)是短语。

语句就是完整的句子。(例如:sum=num1+num2;)

表达式计算出来的是一个值,语句来执行使某事情发生。

例如:给一个学生的年龄,输出这个学生是否成年了。

如果 年龄大于等于18岁 输出学生成年了。

这里的成年了是否会输出是有 年龄是否满足决定的。

JS在默认的就是从上到下一条条的执行代码语句。

为使某事发生可能会改变语句的默认执行顺序。

2 if语句

格式:if(条件){

条件为真实执行的语句

}

JS解释器会根据条件的结果决定是执行还是跳过语句。

读法:如果 条件为真,执行里面的代码。为假掉过里面的代码。

//实践:给一个学生的年龄,输出这个学生是否成年了。
//var age1=parseInt(prompt("请输入一个学生的年龄:"));
 var age1=23;
 if(age1>=18){
    console.log("这个学生成年了。");
 }
 if(age1<18){
    console.log("这个学生没有成年。");
 }

分析一下,这里的判断是一个事情的两个方面?

3 if-else语句

格式:

if(条件){条件为真,执行的语句}

else{条件为假(不为真),执行的语句。}

读法:如果 条件为真 执行为真的语句,否则执行为假的语句

//实践:给一个学生的年龄,输出这个学生是否成年了。
// var age2=parseInt(prompt("请输入一个学生的年龄:"));
var age2=16;
if(age2>=18){
console.log("这个学生成年了。");
}
else{
console.log("这个学生没有成年。");
}

如果判断学生的成绩等级,会有很多的判断。

4 if-else if语句

格式:

if(条件1){为真,执行的语句}

else if(条件2){为真,执行的语句}

......

else if(条件n){为真,执行的语句}

else{ 条件n为假,执行的语句 }

//实践:根据学生的成绩,判定学生的等级
//var score1=parseFloat(prompt("请输入一个学生的成绩:"));
var score1=95;
if(score1>=90){console.log("A");}
else if(score1>=80){console.log("B");}
else if(score1>=70){console.log("C");}
else if(score1>=60){console.log("D");}
else{console.log("E");}

5 switch语句

它是if语句的另外一种形式,解决根据表达式的不同而执行不同语句的问题。

格式:

switch(表达式){

case 值1:语句块;break;

case 值2:语句块;break;

......

case 值n:语句块;break;

default:语句块n+1;break;

}

执行:

计算一次 switch 表达式

每个表达式的值与每个 case 的值进行对比

如果存在匹配,则执行关联代码

default:关键词规定不存在 case 匹配时所运行的代码。

break:如果 JavaScript 遇到 break 关键词,它会跳出 switch 代码块。

//实践:重写根据学生的成绩,判定学生的等级
//var score2=parseInt(prompt("请输入一个学生的成绩:"));
var score2=90;
score2=parseInt(score2/10);//parseInt()取得整数部分。
switch(score2){
case 10:console.log("A");break;
case 9:console.log("A");break;
case 8:console.log("B");break;
case 7:console.log("C");break;
case 6:console.log("D");break;
default:console.log("E");break;}

6 三元运算符

可以当成一种简单的if-else语句。

名字表示的三元运算符需要三个操作数。

语法是:

条件 ? 结果1 : 结果2;

这里你把条件写在问号上(?)的前面后面跟着用冒号(:)分隔的结果1和结果2。

满足条件时结果1否则结果2。


JavaScript中,有多种方法可以判断一个变量的数据类型。以下是一些常见的方法:

  1. typeof 操作符

typeof 是JavaScript中的一元操作符,返回一个表示未计算变量类型或已计算对象类型的字符串。但是,需要注意的是 typeof 对于 null 和 array 的处理可能不是你所期望的:


console.log(typeof undefined);    // "undefined"  
console.log(typeof 123);          // "number"  
console.log(typeof 'hello');      // "string"  
console.log(typeof true);         // "boolean"  
console.log(typeof {});           // "object"  
console.log(typeof []);           // "object" 而不是 "array"  
console.log(typeof null);         // "object" 而不是 "null"  
console.log(typeof function(){}); // "function"
  1. instanceof 操作符

instanceof 操作符用于检测构造函数的 prototype 属性是否出现在对象的原型链中的任何位置。这主要用于检测对象是否属于某个类。

console.log([] instanceof Array);  // true  
console.log(null instanceof Object); // false,因为 null 不是一个对象
  1. Array.isArray() 方法

这是检测一个值是否为数组的最佳方法。

console.log(Array.isArray([]));  // true  
console.log(Array.isArray({}));  // false
  1. Object.prototype.toString.call() 方法

这个方法返回表示该对象的字符串。对于检测原始值类型,特别是当 typeof 给出不直观的结果时(如 null 和 array),这是一个很有用的方法。

function getType(obj) {  
    return Object.prototype.toString.call(obj).slice(8, -1);  
}  
  
console.log(getType(null));       // "Null"  
console.log(getType([]));         // "Array"  
console.log(getType({}));         // "Object"  
console.log(getType(123));        // "Number"  
console.log(getType('hello'));    // "String"  
console.log(getType(true));       // "Boolean"  
console.log(getType(undefined));  // "Undefined"
  1. constructor 属性

每个JavaScript对象都有一个 constructor 属性,它指向创建该对象的构造函数。但请注意,如果 constructor 被手动修改,则可能不准确。

console.log(([]).constructor === Array);  // true  
console.log(({}).constructor === Object); // true
  1. ES6 中的 Symbol.toStringTag

某些内置对象(如 Array、Date、RegExp 等)的 @@toStringTag 属性值是一个字符串,该字符串用于定制 Object.prototype.toString.call(obj) 的默认行为。但通常你不需要直接使用这个属性,除非你在实现自定义对象并希望改变 Object.prototype.toString.call(obj) 的默认行为。

篇文章给大家继续讲解下js中的多种语句。今天主要说下以下4个语句。

(1)for in语句

for-in 语句是一种精准的迭代语句,可以用来枚举对象的属性。

使用语法:for (property in expression) statement

请看下面的例子。假设我们有一个数组,我们想要求数组内各元素的和,那么我们可以这么写;

在这个例子中,我们使用 for-in 循环来循环获取arr数组中的每个元素。每次执行循环时,都会将数组中的值添加到sum中。这个过程会一直持续到数组中的所有元素都被枚举一遍为止。

(2)label语句

使用 label 语句可以在代码中添加标签,以便将来使用。

使用语法:label: statement

请看下面的例子。

这个例子中定义的 start 标签可以在将来由 break 或 continue 语句引用。加标签的语句一般都要与 for 语句等循环语句配合使用。

(3)break和continue语句

break 和 continue 语句用于在循环中精确地控制代码的执行。其中,break 语句会立即退出循环,强制继续执行循环后面的语句。而 continue 语句虽然也是立即退出循环,但退出循环后会从循环的顶

部继续执行。

请看下面的例子:我们从1开始执行,如果i的值能整除5的话就跳出循环;

这个例子中的 for 循环会将变量 i 由 1 递增至 10。在循环体内,有一个 if 语句检查 i 的值是否可以被 5 整除(使用求模操作符)。如果是,则执行 break 语句退出循环。另一方面,变量 num 从 0 开

始,用于记录循环执行的次数。在执行 break 语句之后,要执行的下一行代码是 alert()函数,结果显示 4。也就是说,在变量 i 等于 5 时,循环总共执行了 4 次;而 break 语句的执行,导致了循环在

num 再次递增之前就退出了。

如果在这里把 break 替换为 continue 的话,代码就如下图所示:

当变量 i 等于 5 时,循环会在 num 再次递增之前退出,但接下来执行的是下一次循环,即 i 的值等于 6 的循环。于是,循环又继续执行,直到 i 等于10 时自然结束。而 num 的最终值之所以是 8,是因为 continue 语句导致它少递增了一次;

(4)with语句

with 语句的作用是将代码的作用域设置到一个特定的对象中。

使用语法:with (expression) statement;

定义 with 语句的目的主要是为了简化多次编写同一个对象的工作,如下面的例子所示:

上面几行代码都包含 location 对象。如果使用 with 语句,可以把上面的代码改写成如下所示:

注意:由于大量使用 with 语句会导致性能下降,同时也会给调试代码造成困难,因此在开发大型应用程序时,不建议使用 with 语句,大家这里了解下即可。

(5)switch 语句

switch 语句与 if 语句的关系最为密切,而且也是在其他语言中普遍使用的一种流控制语句。

使用语法:

请看下面的例子:我们比如小明考试考了82分,我们这里如果是得分0-60为不及格,61-80为一般,81-100为优秀,那么小明的成绩属于什么区间呢。

我们这里显然会弹出优秀弹窗。

每日金句:真正的坚韧,应该是哭的时候要彻底,笑的时候要开怀,说的时候要淋漓尽致,做的时候要毫不犹豫。喜欢我的文章的小伙伴记得关注一下哦,每天将为你更新最新知识。