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>";
}
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)总有一个对象不再被任何变量引用时,才释放。