1、数字 + undefined = NaN
2、var a=b=c=10;
等价于{var a = 10; b = 10; c = 10;}
说明:a声明且赋值;b和c仅仅是赋值;
在function(){ },若是出现这种情况,
a在function内,是局部变量;b和c是全局变量
3、var a = 10, b = 20;
等价于{var a = 10; var b = 20;}
a和b都声明并且赋值
4、变量声明提升
(1)
var num = 10;
function fun(){
console.log(num);
var num = 20; // key point,这里<=>var num;console.log(num);num=20;
}
fun();
输出:undefined 理由,在子函数里面变量声明提升了,但是赋值的步骤还是在后面这行。
(2)
var a = 18;
function f1(){
var b = 9;
console.log(a);
console.log(b);
var a = '123';
}
f1();
输出:undefined
9
5、函数的参数
function fn(a,b) //形参
{
console.log(a+b);
}
fn(1,2); //实参 3
fn(5);//实参 5+undefined=NaN
fn(4,1,2); //实参 5
6、判断函数参数(形参/实参)个数
function fun(a,b)
{
console.log(fun.length); //形参的个数
console.log(arguments.length); // 实参的个数
if(fun.length == arguments.length)
{ console.log(a+b);} // 变量直接写,没有引号
else
{ console.error("对不起,您输入参数的个数不对,应输入的参数个数是:" + fun.length);}
}
// fun(1,2);
fun(1,2,3);
* 新,console.error( );
7、15金字塔
<script>
for (var i=1; i<=100; i+=4){
document.write("<hr width= "+i+" %/>");
}
</script>
说明:document.write("<hr>"); //满屏横线
要生成金字塔形状,必须设置宽度;
document.write("<hr width= "+i+" %/>");
表示宽度是变量,是个百分比变量,并不是每一行的宽度就是对应的变量值,而是所占的满屏的总宽度的百分比。
8、获得焦点/失去焦点
<script>
window.onload = function(){
// 什么时候获得焦点什么时候复原?
var txt = document.getElementById("txt");
txt.onfocus = function(){
if(this.value == "请输入...")
{
this.value = "";
this.style.color = "red";
}
}
txt.onblur = function(){
if(this.value == "")
{
this.value = "请输入...";
this.style.color = "blue";
}
}
}
</script>
说明:
1、获得焦点 onfocus;失去焦点 onblur;
2、事件三要素:文本框获得焦点,处理if语句,判断里面内容,是“请输入...”,就执行,清空文本框内容;为了辨识更改了style.color;文本框消除焦点,处理if语句,内容为空,就更改内容为“请输入...”。
9、定义函数+函数调用
声明一个函数,事件三元素可以调用这个函数作为事件处理程序。 <body> <button id="btn"></button> <script> var fn = function(){ alert("哈哈"); } btn.onclick = fn; </script> </body>
之前,事件源.事件 = function(){事件处理程序}
<body> <button id="btn">www</button> <script> btn.onclick = function(){ alert("哈哈"); } </script> </body>