js代码写的不多,很多东西写出来的时候总是带着很多不确定性,代码写出来后还要百度一下来确定自己没错才放心,很难受,所以照着w3cschool把基础撸一遍。把疑惑和不知道的验证了一下并记录下来,如下:
1. 常说的页面加载完成就绪后执行的js方法,意味着当前你可以操作页面上所有dom对象。否则可能出现操作的dom对象是undefined的情况
2. 在标签中直接写触发的方法体,可编写多行,可进行换行
<button type="button" οnclick="
alert('Welcome!');
var temp='sb ni';
alert(temp);
">点击这里</button>
3. HTML 中的脚本必须位于 <script> 与 </script> 标签之间。JavaScript 是所有现代浏览器以及 HTML5 中的默认脚本语言
脚本可被放置在 HTML 页面的 <body> 和 <head> 部分中。浏览器会解释并执行位于 <script> 和 </script> 之间的 JavaScript。
4. 如果定义了两个名字相同的方法,后加载的方法会覆盖先加载的方法
5. js的方法没有重载,在调用方法时按顺序传递参数,多余的参数被丢弃,少传的参数值为undefined
6. 引用外部的js,<script src="myScript.js"></script>
7. 对于一个声明但是没有赋值的变量,var temp; 它的类型是undefined
8. js的数据类型字符串、数字、布尔、数组、对象、Null、Undefined
9. Null和undefined的区别
alert(typeof(null));//object
alert(typeof(undefined)); //undefined
alert(null == undefined); //true
alert(null === undefined);//false
10. 关于if判断是,条件为不是true和false的其它值时
(1)数字:0作为条件等于false,1作为条件等于true,-1作为条件等于true
(2)字符串:var a="true";var b="false"; ,a,b作为条件都等于true
(3)null/undefined:作为条件都等于false
(4)对于new出来的对象:var temp=new Sring; 作为条件等于true
11. 关于变量的使用
(1)方法中使用var temp=""; 方式声明的变量只在方法中有效
(2)方法中使用temp=""; 方式声明的变量在方法调用后temp升级为全局变量
(3)变量的调用前必须被声明,先调用后声明会报错,例如,声明方法function fun()中使temp=""
创建全局变量temp,在fun()后,alert(temp); ,此时报错。如果是在调用fun(); 后alert(temp)
则是正确的
(4)局部变量在方法结束后销毁,全局变量在关闭页面后销毁
12. js的运算符
(1)基本的运算符,+,-,*,/,%,++,--(包括a++,++a)
(2)基本的赋值,+=,-=,*=,/=,%=
(3)字符串相加,字符串和数字相加(结果依然是字符串)
13. for循环遍历对象
var person={fname:"Bill",lname:"Gates",age:56};
for (x in person){
txt=txt + person[x];
}
//x对象属性名,person[x]对象属性值
14. continue结束本次迭代进入下次迭代,break结束循环
15. 如果存在2层循环嵌套,如何在第2层循环中break,同时退出第2层及上一层(第1层)循环
for1:
for(var i=0;i<3;i++){
document.write("#####一层for:第"+i+"次#####</br>");
for2:
for(var j=0;j<3;j++){
if(j==1){
//(1)break; 等于break for2,退出for2循环,继续for1循环
//(2)break for1; 同时退出for1,for2循环,即结束所有循环
//(3)continue; 等于continue for2,不在继续往下执行,j++,开始下次j=2的循环
//(4)continue for1; 等于break for2,退出for2循环,继续for1循环,效果同(1)一样
//(5)如果是在方法中,直接return,等于break for1的效果
}
document.write("##二层for:第"+j+"次##</br>");
}1111111
}