JS基础篇(一些记录)
JS一些问题记录
1.switch,break后只会退出switch本身用于防止穿透,外层比如for不会退出,ifbreak的话就会退出整个循环
2.三元运算符用于比较简单的两个东西之间的比较,也不能输出打印出来,但是if双分支就可以
3.同一个页面两个for,都用i不会冲突,是两个局部变量不会影响
4.for里面嵌套for,外部和内部循环一次后里面的变量也会重新赋值。注意是for循环不是以前的判断
5.多个函数调用执行的顺序和变量要用时的访问顺序
顺序就是有声明先声明赋值出来,然后看同一域中有没有调用,有就调用,调用函数就是局部的了。局部有声明就执行局部里面的,如果局部这一域中还有调用就再调用一次,这次调用如果还有声明就用这个声明的。
然后有要输出打印出来的变量的就是从自己当前的域找,如果没有就去找外面的域依此类推,就近原则去查找
6.函数调用的时候放在声明函数的同一个域就行,不用一定放在声明函数后面或者最后;匿名函数就不一样了一定得放在函数后面,因为匿名函数的函数表达式相当于声明赋值,我不能先给值再声明
7.函数计算完成一定要记得重新赋值给原来的变量
8.在循环或者判断里面如果是声明变量再赋值,那这就是局部变量,外面是打印不了的,如果是直接赋值那就是全局变量了,外面就可以用了.只是声明也是局部
9.img里面的src可以不加引号,title也可以不加。不过title如果有空格就得加引号,单双都行。注意js中取对象取过来的是已经有引号了,是字符串,但就是没显示出来而已。
<img src=../../html5+css/电器少女1.png title='电器 少女'>
let num1 = 10
let num2 = num1
num2 = 20
console.log(num1)
// 这跟值得交换一样,前面说num1的值给num2后num1就没有值了只是帮助我们理解,其实是有的,只是后面再给他值会覆盖前面的而已
JS一些快捷方式
1.双击内容,ctrl+d,可以选中相同内容,然后输入要改的内容就可以了,很快,不用一个一个删除
2.鼠标点击一行,然后alt加下箭头就可以移动了
一些疑问记录
疑问1
let arr = ['赵云', '黄忠', '关羽', '张飞', '马超', '刘备', '曹操']
for (let ranDom = 0; ranDom < 7; ranDom++) {
// 这里有个疑问for括号后面的ranDom跟循环体里面的一样吗,如果一样那ranDom这个随机数得到后加1不可能每次都能7个都打印出来。如果没关系,那为什么在循环体里面可以直接打印ranDom。是不是说开始新一轮的循环原先赋值后的ranDom就没用了,还是用for()里面的ranDom自增
let ranDom = Math.floor(Math.random() * arr.length)
document.write(arr[ranDom] + '<br>')
arr.splice(ranDom, 1)
console.log(arr) //测试的看有没有删掉
}
实验如下
for (let i = 0; i < 4; i++) {
let i = 4
document.write(i + '<br>')
} //从这里看出确实是循环结束后i还是0开始,然后自增,一共循环4次