马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 yanghongchen666 于 2021-1-31 01:15 编辑
Js中的break和continue:
break:
break可以立即终止离它最近的switch和循环语句(if语句不能)
continue:
continue可以用来跳过当次循环,并继续进行,
跟break一样,continue也只会对离它最近的循环起作用。
for(var i=0; i<5; i++){
console.log("@外层循环" + i);
for(var j=0; j<5; j++){
break;
console.log("内层循环: " + j);
}
}
既然break可以终止离他最近的循环,那么上面的例子如果我想跳出外层循环要怎么办呢?
其实答案也很简单啦~在JS中我们可以使用label来让break知道跳出那个循环,语法如下:
label:循环语句
break label;
现在我们来改写上面的例子~
outer:
for(var i=0; i<5; i++){
console.log("@外层循环" + i);
for(var j=0; j<5; j++){
break outer;//终止外层循环
console.log("内层循环: " + j);
}
}
同样continue后面也可以写label哟~
outer:
for(var i=0; i<5; i++){
for(var j=0; j<5; j++){
if(j == 1){
continue outer;
}
console.log("-->" + j);
}
console.log("@--->" + i);
}
----------------------------------------------
JS中对象的简介:
(嘿嘿嘿~没有npy的各位我们以后可以new一个对象啦!!!激不激动!赶紧来一起学习new对象!!!)
对象的分类:
1.内建对象
-由Es标准定义的对象,在任何ES的显示中都可以使用
-比如: Math String Number Boolean Function....
2.宿主对象:
-由JS的运行环境提供的对象,目前来说主要指浏览器
-比如BOM DOM
3.自定义对象
-由开发人员自己创建的对象
对象属于复合数据类型,在对象中可以保存多个不同数据类型的属性(下面有example)
复合类型和基本类型的不同在于,基本类型创建的变量是独立的,也就是说值跟值之间没有任何的联系,
但是复合类型值跟值间是由联系的
---------------------------------------------
JS中对象基本的操作:
创建对象:
//new关键字可以构造函数constructor
var obj = new Object();
在对象中添加属性
语法:
对象.属性名 = 属性值
obj.name = "孙悟空";
obj.age = 18;
obj.gender = "男";
读取对象中的值
语法:
对象.属性值
console.log(obj.name);//这里会输出对应name属性里面的值,也就是孙悟空
//修改对象的值
obj.name = "猪八戒";
在对象中属性的值可以直接覆盖
//删除对象的值
delect obj.name
//如果读取对象中的属性不存在,不会报错而会返回undefined
console.log(obj.name)
---------------------------------------------
JS对象中的属性名和属性值:
语法:
对象["属性名"] = 属性值
我们可以使用[]方式来代替.的方式来操作
使用[]可以在里面使用特殊的属性名
比如: "1290384 9wtgyherw [29q3w5t3 qgy89ed"
"锄禾日当午"
(即使可以使用,但也不建议使用)
[]不仅可以使用特殊的属性名,也可以在[]中传递一个变量
这样变量的值是多少就会读取那个属性
例子:
//创建对象
var obj = new Object();
var n = "123";
obj["123"] = "number";
/*
这里我们在[]里传入变量n
输出的值是"number"因为变量n的值为"123",而对象属性名中有"123",
所以这里会直接打印"123"属性对应的值
*/
console.log(obj[n]);
obj中的属性值可以是任意的属性值,甚至可以使一个obj
例子:
//创建一个对象
var obj2 = new Object();
obj2.name = "猪八戒";
//将obj2设置为obj的属性
obj.test = obj2
//在obj2里找name属性
console.log(obj.test.name);//这里会输出猪八戒
在对象中有时候我们不知道是否有这个属性在对象中存储,
这时我们可以使用in运算符帮助我们,具体如下
in 运算符
-通过该运算符可以检查一个对象中是否含有指定的属性
如果有则返回true,没有则返回false
-语法:
"属性名" in 对象
例子:
//检查obj中是否含有test2属性
console.log("test2" in obj);
console.log("test" in obj);
console.log("name" in obj);
----------------------------------------------------------
JS中的基本数据类型和引用数据类型:
基本数据类型
String Number Boolean Null Undefined
引用数据类型
Object
JS中的变量都是保存在栈内存中的。
基本数据类型的值直接在栈内存中存储
值与值之间是独立存在,修改一个变量不会影响其他的变量
对象时保存在堆内存中的,每创建一个新的对象,就会在堆内存中开辟出一个新的空间
而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象的引用,
当一个通过一个变量修属性时,另一个也会受到影响
两句话总结一下
基本类型:在存储变量的值的时候,保存的就是当前的值,并且修改一个变量不会影响其他变量。
引用类型:对象在保存值的时候,保存的是内存地址,所以这也就是为什么在obj中修改属性可以直接覆盖,
因为在内存地址空间内会用新值覆盖旧值;这也解释了为什么obj的属性值也可也是对象
因为保存的对象的值也是相同的内存地址。
----------------------------------------------------------------
JS中的字面量:
使用字面量来创建对象会更加的方便和迅速
语法:
{属性名.属性值,属性名.属性值......};
注意事项:
对象字面量的属性名可以加引号也可以不加,建议不加,
如果要使用特殊的名字,则必须加引号
属性名和属性值是一组一组的名值对结构,
名和值之间使用:连接,多个名值对之间使用,隔开
如果一个属性之后没有其他的属性了,就不要写。(跟python的字典基本上一模一样~)
例子:
var obj2 = {
name:"孙悟空",
age:18,
gender:"男",
test:{
name:"沙和尚",
age:19,
gender:"男"
}
};
这里字面量会比使用new Object()情况更多,请大家多多练习并熟练掌握~
--------------------------------------------------------
试一试:
1.使用for嵌套循环打印9*9乘法表(效果如下):
1*1=1
1*2=22*2=4
1*3=32*3=63*3=9
1*4=42*4=83*4=124*4=16
1*5=52*5=103*5=154*5=205*5=25
1*6=62*6=123*6=184*6=245*6=306*6=36
1*7=72*7=143*7=214*7=285*7=356*7=427*7=49
1*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=64
1*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81
2.使用for嵌套循环打印1-100以内所有质数
3.使用break来改进试一试2中的质数练习,让他效率变的更高吧!
4.创建一个对象属性包含country,city,shcool,job
5.使用对象字面量来创建试一试
前面两周有一些事情所以这一期更新的慢了一点~不过不用担心之后应该就是正常速度啦~希望大家多多支持鸭!一起学习~一起用编程改变世界!加油~
|