JavaScript学习,常用常记(if-else,switch,for,while,break,continue,typeof,null,undefined)

var time = new Date().getHours();
if (time<10){
	document.write("<b>早上好</b>");
}
else if (time>=10 && time<16){
	document.write("<b>今天好</b>");
}
else{
	document.write("<b>晚上好!</b>");
}
var r=Math.random();
var x=document.getElementById("demo")
if (r>0.5){
	x.innerHTML="<a href='http://www.runoob.com'>访问菜鸟教程</a>";
}
else{
	x.innerHTML="<a href='http://wwf.org'>Visit WWF</a>";
}

提一个优化 if 的方法

function myFunction(){
	var x;
	var d=new Date().getDay();
	switch (d){
  		case 6:
			x="今天是星期六";
    		break;
  		case 0:
			x="今天是星期日";
    		break;
  		default:
    		x="期待周末";
  	}
	document.getElementById("demo").innerHTML=x;
}

switch 中 case的判断是===的判断,即数据类型和值的双重判断,这点要注意。

另外switch的判断条件可以是String 、Number、Boolean、char、枚举、null、undefined

cars=["BMW","Volvo","Saab","Ford"];
for (var i=0;i<cars.length;i++){
	document.write(cars[i] + "<br>");
}
var person={fname:"John",lname:"Doe",age:25}; 
for (x in person){  // x 为属性名
    txt=txt + person[x];
}
	var x="",i=0;
	while (i<5){
		x=x + "该数字为 " + i + "<br>";
		i++;
	}
	var x="",i=0;
	do{
		x=x + "该数字为 " + i + "<br>";
	    i++;
	}while (i<5)  
function myFunction(){
    var array = new Array();
    var x;
    var txt=""
    array[0] = 1;
    array[3] = 2;
    array[4] = 3;
    array[10] = 4;
    for( x in array ){
        alert(array[x]);     // 依次显示出 1 2 3 4
    } 
    alert(array.length);    // 结果是11
    for( var i=0 ; i<4 ; i++){
        alert(array[i]);     // 依次显示出 1 undefined undefined 2 
    }
    document.getElementById("demo").innerHTML = txt;
}
  • break 语句用于跳出循环。
  • continue 用于跳过循环中的一个迭代。

JavaScript 标签

  • 正如您在 switch 语句那一章中看到的,可以对 JavaScript 语句进行标记。
  • 如需标记 JavaScript 语句,请在语句之前加上冒号。
  • 通过标签引用,break 语句可用于跳出任何 JavaScript 代码块。
cars=["BMW","Volvo","Saab","Ford"];
list:{
    document.write(cars[0] + "<br>"); 
    document.write(cars[1] + "<br>"); 
    document.write(cars[2] + "<br>"); 
    break list;
    document.write(cars[3] + "<br>"); 
    document.write(cars[4] + "<br>"); 
    document.write(cars[5] + "<br>"); 
}

有了标签,可以使用break和continue在多层循环的时候控制外层循环。

for (var i = 0; i < 10; i++){
    innerloop:
    for (var j = 0; j < 10; j++){
        if (j > 3){
            break;
        }
        if (i == 2){
            break innerloop;
        }
        if (i == 4){
            break outerloop;
        }
        document.write("i=" + i + " j=" + j + "<br>");
    }
}

typeof 操作符

你可以使用 typeof 操作符来检测变量的数据类型。

typeof "John"                // 返回 string 
typeof 3.14                  // 返回 number
typeof false                 // 返回 boolean
typeof [1,2,3,4]             // 返回 object
typeof {name:'John', age:34} // 返回 object

在JavaScript中,数组是一种特殊的对象类型。 因此 typeof [1,2,3,4] 返回 object。 

null

  • 在 JavaScript 中 null 表示 "什么都没有"。
  • null是一个只有一个值的特殊类型。表示一个空对象引用。
  • 用 typeof 检测 null 返回是object。
  • 你可以设置为 null 来清空对象:   你可以设置为 undefined 来清空对象:
var person = null;           // 值为 null(空), 但类型为对象
var person = undefined;     // 值为 undefined, 类型为 undefined

undefined

  • 在 JavaScript 中, undefined 是一个没有设置值的变量。
  • typeof 一个没有值的变量会返回 undefined
  • 任何变量都可以通过设置值为 undefined 来清空。 类型为 undefined.

undefined 和 null 的区别

typeof undefined             // undefined
typeof null                  // object
null === undefined           // false
null == undefined            // true

1、定义

  •  (1)undefined:是所有没有赋值变量的默认值,自动赋值。
  •  (2)null:主动释放一个变量引用的对象,表示一个变量不再指向任何对象地址。

2、何时使用null?

当使用完一个比较大的对象时,需要对其进行释放内存时,设置为 null。

3、null 与 undefined 的异同点是什么呢?

共同点:都是原始类型,保存在栈中变量本地。

不同点:

(1)undefined——表示变量声明过但并未赋过值。

它是所有未赋值变量默认值,例如:

var a;    // a 自动被赋值为 undefined

(2)null——表示一个变量将来可能指向一个对象。

一般用于主动释放指向对象的引用,例如:

var emps = ['ss','nn'];
emps = null;     // 释放指向数组的引用

4、延伸——垃圾回收站

它是专门释放对象内存的一个程序。

  •  (1)在底层,后台伴随当前程序同时运行;引擎会定时自动调用垃圾回收期;
  •  (2)总有一个对象不再被任何变量引用时,才释放。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hhjian6666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值