体上程序代码的执行是从上到下顺序执行,在某些具体阶段可以会产生分支和循环重复的情形,形成了各种不同的程序语句,构成了不同的程序结构。主要有顺序结构,分支结构和循环结构。以前的代码主要是按程序的顺序执行,以后的代码会是这三者的不同组合。
如果说表达式(例如:num1+num2)是短语。
语句就是完整的句子。(例如:sum=num1+num2;)
表达式计算出来的是一个值,语句来执行使某事情发生。
例如:给一个学生的年龄,输出这个学生是否成年了。
如果 年龄大于等于18岁 输出学生成年了。
这里的成年了是否会输出是有 年龄是否满足决定的。
JS在默认的就是从上到下一条条的执行代码语句。
为使某事发生可能会改变语句的默认执行顺序。
格式:if(条件){
条件为真实执行的语句
}
JS解释器会根据条件的结果决定是执行还是跳过语句。
读法:如果 条件为真,执行里面的代码。为假掉过里面的代码。
//实践:给一个学生的年龄,输出这个学生是否成年了。
//var age1=parseInt(prompt("请输入一个学生的年龄:"));
var age1=23;
if(age1>=18){
console.log("这个学生成年了。");
}
if(age1<18){
console.log("这个学生没有成年。");
}
分析一下,这里的判断是一个事情的两个方面?
格式:
if(条件){条件为真,执行的语句}
else{条件为假(不为真),执行的语句。}
读法:如果 条件为真 执行为真的语句,否则执行为假的语句
//实践:给一个学生的年龄,输出这个学生是否成年了。
// var age2=parseInt(prompt("请输入一个学生的年龄:"));
var age2=16;
if(age2>=18){
console.log("这个学生成年了。");
}
else{
console.log("这个学生没有成年。");
}
如果判断学生的成绩等级,会有很多的判断。
格式:
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");}
它是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;}
可以当成一种简单的if-else语句。
名字表示的三元运算符需要三个操作数。
语法是:
条件 ? 结果1 : 结果2;
这里你把条件写在问号上(?)的前面后面跟着用冒号(:)分隔的结果1和结果2。
满足条件时结果1否则结果2。
JavaScript中,有多种方法可以判断一个变量的数据类型。以下是一些常见的方法:
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"
instanceof 操作符用于检测构造函数的 prototype 属性是否出现在对象的原型链中的任何位置。这主要用于检测对象是否属于某个类。
console.log([] instanceof Array); // true
console.log(null instanceof Object); // false,因为 null 不是一个对象
这是检测一个值是否为数组的最佳方法。
console.log(Array.isArray([])); // true
console.log(Array.isArray({})); // false
这个方法返回表示该对象的字符串。对于检测原始值类型,特别是当 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"
每个JavaScript对象都有一个 constructor 属性,它指向创建该对象的构造函数。但请注意,如果 constructor 被手动修改,则可能不准确。
console.log(([]).constructor === Array); // true
console.log(({}).constructor === Object); // true
某些内置对象(如 Array、Date、RegExp 等)的 @@toStringTag 属性值是一个字符串,该字符串用于定制 Object.prototype.toString.call(obj) 的默认行为。但通常你不需要直接使用这个属性,除非你在实现自定义对象并希望改变 Object.prototype.toString.call(obj) 的默认行为。
篇文章给大家继续讲解下js中的多种语句。今天主要说下以下4个语句。
for-in 语句是一种精准的迭代语句,可以用来枚举对象的属性。
使用语法:for (property in expression) statement
请看下面的例子。假设我们有一个数组,我们想要求数组内各元素的和,那么我们可以这么写;
在这个例子中,我们使用 for-in 循环来循环获取arr数组中的每个元素。每次执行循环时,都会将数组中的值添加到sum中。这个过程会一直持续到数组中的所有元素都被枚举一遍为止。
使用 label 语句可以在代码中添加标签,以便将来使用。
使用语法:label: statement
请看下面的例子。
这个例子中定义的 start 标签可以在将来由 break 或 continue 语句引用。加标签的语句一般都要与 for 语句等循环语句配合使用。
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 语句导致它少递增了一次;
with 语句的作用是将代码的作用域设置到一个特定的对象中。
使用语法:with (expression) statement;
定义 with 语句的目的主要是为了简化多次编写同一个对象的工作,如下面的例子所示:
上面几行代码都包含 location 对象。如果使用 with 语句,可以把上面的代码改写成如下所示:
注意:由于大量使用 with 语句会导致性能下降,同时也会给调试代码造成困难,因此在开发大型应用程序时,不建议使用 with 语句,大家这里了解下即可。
switch 语句与 if 语句的关系最为密切,而且也是在其他语言中普遍使用的一种流控制语句。
使用语法:
、
请看下面的例子:我们比如小明考试考了82分,我们这里如果是得分0-60为不及格,61-80为一般,81-100为优秀,那么小明的成绩属于什么区间呢。
我们这里显然会弹出优秀弹窗。
每日金句:真正的坚韧,应该是哭的时候要彻底,笑的时候要开怀,说的时候要淋漓尽致,做的时候要毫不犹豫。喜欢我的文章的小伙伴记得关注一下哦,每天将为你更新最新知识。
*请认真填写需求信息,我们会在24小时内与您取得联系。