JavaScript语法之语句

1、变量的生命周期

在函数内部声明的变量是局部变量,在函数外部的声明的变量是全局变量,函数内外都能使用。如果在函数内部给一个未定义的变量赋值,则该变量会自动声明为全局变量,但外部要使用这个变量必须在该函数执行之后,因为这时候该变量才被声明了。

//variable's action scope
/*declare in local function is local variable*/
function myFunction(){
	var num=3.14;
	console.log(num);
}
//console.log(num); //error
var num;
console.log(num);//undefined
myFunction();

/*declare out of function or use in function without declare is global variable*/
function myFunction2(){
	character='3';
	console.log(character);
}
myFunction2();
console.log(character);


//snap line
var str="hello \
 world!";
console.log(str);
2、运算符

javascript的算术运算符有+,-,*,/,%,+=,-=,*=,/=,++,--。数字+数字=数字。数字+字符串结果为字符串。

//operator
console.log((4%3)+3.14/5);
num=10;
console.log(++num);//11
console.log(num);//11
console.log(num--);//11
console.log(num);//10
num*=10;
console.log(num);//100
txt1="hello";
txt2="world!";
txt=txt1+" "+txt2;
console.log(txt);
console.log(5+5);//10
console.log("5"+5);//10
console.log("hello"+5);//hello5
javascript的比较运算符有>,>=,<,<=,==,!=,===,!==。绝对等于===和绝对不不等于的要求比较高,要求操作数的类型和数值完全一样(或不一样),而==和!=则能自动进行类型转换。

javascript的逻辑运算符有&&,||,!。

/*compare operator*/
/*===absolutely equal type and value must same*/
console.log(3=="3");//true
console.log(3==="3");//false
console.log(5>'3' ? 4>2 : 4<2);//true(4>2)
/*logic operator*/
if('a'=="a" && true){
	console.log("a=a");
}
if('b'=="b" || false){
	console.log("b=b");
}
3、条件语句、循环语句

javascript支持if...else if...else和switch语句。

循环语句支持for,for...in,while和do...while。其中,for...in取的是Key。

continue用于跳出一次循环,break用于完全跳出循环或switch语句,还可以用于跳出label。

//loop
for(var i=0;i<5;i++){
	console.log("for loop"+(i+1));
}
var animals=["cat","dog","pig","bird"];
for(var b in animals){
	console.log(b);//get the key
	console.log(animals[b]);//get the value
}
var person={"name":"wanwu","age":20};
for(p in person){
	console.log(person[p]);
}
var cars=[null,"BMW","Volvo","Saab","Ford"];
var i=0;
//cars[0]=undefined or null,while output nothing
while(cars[i]){
	console.log(cars[i]);
	i++;
}
i=0;
//cars[0]=undefined or null,do while also output all cars
do{
	console.log(cars[i]);
	i++;
}while(cars[i]);

//break continue
for(var i=0;;i++){
	if(i==3){
		break;
	}
	console.log(i);
}
for(i=0;;i++){
	if(i==3){
		continue;
	}
	if(i==5){
		break;
	}
	console.log(i);
}
//break label
list:{
console.log(cars[0]);
console.log(cars[1]);
break list;
console.log(cars[2]);
}

4、取变量类型typeof

javascript可以用typeof还取一个变量的数据类型,返回字符串。

这里要注意的是,前面说过javascript把所有东西都当成对象,所以Array和null返回的类型都是object。undefined表示变量未定义,其返回undefined。而每个数据类型其实是某一种对象的构造函数,所以其返回function。

//typeof
console.log(typeof "string");//string
console.log(typeof(3.14));//number
console.log(typeof {});//object
console.log(typeof true);//boolean
/*everything in javascript is object*/
/*typeof array and null is object*/
console.log(typeof([]));//object
console.log(typeof null);//object
/*undefined has nothing*/
console.log(typeof undefined);//undefined
/*data type is a constructor*/
console.log(typeof Boolean);//function
console.log(typeof String);//function
console.log(typeof Array);//function
console.log(typeof(Object));//function


//null and undefined's difference
var person;
console.log(person);//undefined
person=undefined;
console.log(person);//undefined
person=null;
console.log(null);//null
console.log(typeof undefined);//undefined
console.log(typeof null);//object
console.log(undefined==null);//true
console.log(undefined===null);//false
console.log(undefined==false);//false
console.log(undefined===false);//false
console.log(null==false);//false
console.log(null===false);//false








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值