第3章:基本概念----语法 / 数据类型 / 语句

本章内容:

  1. 语法
  2. 数据类型
  3. 流控制语句
  4. 理解函数
     

3.1 语法

借鉴C语言;

3.1.1区分大小写
ECMAScript中的一切(变量,函数名和操作符)都区分大小写。

3.1.2 标识符
标识符,就是指变量,函数,属性的名字,或者函数的参数。组合规则如下:
第一个字符必须是字母,下划线_或者美元符号$
其他字符可以是字母,下划线_或者美元符号$或数字。


3.1.3 注释

// 单行注释

/*
   多行注释
*/


3.1.4 严格模式
"use strict"

3.1.5 语句

分号:

var sum = a+b;   //记得加分号,不是必须,但是可能会导致压缩出错。

 

3.2 关键字和保留字

3.3 变量

局部变量

function test(){
	var message = "chai";  //局部变量
}
test();
alert(message); //错误!

全局变量

function test(){
	message = "chai";  //全局变量  声明时省略 var 操作符
}
test();
alert(message); //chai

一条语句定义多个变量

var message ="chai",
    found = false,
    age = 29;

 

3.4 数据类型

五种基本数据类型(Number,String,Boolean,Null,Undefined),和一种混合数据类型(Object)。

3.4.1 typeof 操作符

作用:检测给定变量的数据类型,返回值和对应解释如下:

UndefinedBooleanStringNumberObjectfunction
未定义布尔值字符串数值对象或者Null函数

3.4.2 Undefined类型

Undefined类型只有一个值,即特殊的Undefined。

在声明一个变量但未对其初始化时,这个变量的值:Undefined

eg:

var message;
alert(message==undefined); //返回true

特别注意:alert下面2个的区别 ↓

未声明的变量 声明变量未定义值
报错Undefined

3.4.3 Null类型

Null只有一个值,即Null。Null对象表明一个空对象指针,所以用typeof 检测时,返回:Object。

适合什么情况下用此类型?

对于以后要保存对象的变量,但是目前还没真正保存对象,就应该明确将该变量保存为Null值。

3.4.4 Boolean类型

布尔Boolean类型表示逻辑实体,它只有两个值,保留字true和false,分别代表真和假这两个状态。

应用场景

===条件和循环语句===

if(a > 1){
//条件为true时,执行此处
}else{
//条件为false时,执行此处
}

===逻辑运算符===

console.log(!!1);//true

console.log(!!0);//false

===关系运算符===

console.log( 1 > 2);//false

3.4.5 Number类型

NaN,非数值。

非数值类型检测:isNaN()函数。eg如下;

alert(isNaN(10))  //返回false

数值转换

3个函数 ,非数值--》数值。
Number(),
如果是Boolean值,true和false将分别转换为1和0。
如果是null,返回0;
如果是underfined,返回NaN。

...详见书

var num1 = Number(“Hello world!”);   //返回NaN  不好汉任何有意义的数字值
var num2 = Number(“000011”);   //返回11
var num3 = Number(true);        //返回1

pareInt(),
转为整数格式,

parseFloat()

...详见书

 

3.4.5 String类型(字符串类型)

1,字符串字面量

...

//计算长度:
var text =“hello world!”
alert(text.lenght)

2,转化为字符串

toString() 方法

....见书

 

3.5.3 布尔操作符

3个操作符:非(NOT),与(AND),或(OR)

1,逻辑
逻辑非由一个叹号 ! 表示,可以应用于任何值。逻辑非操作符首先会把它的操作数转换为一个布尔值,然后对其求反。

2,逻辑
逻辑与由两个 && 表示,可以应用于任何值。

3,逻辑
逻辑或由两个 || 表示,

 

3.4.6 Object类型

数据和功能的集合,并添加属性和方法。

....见书

 

3.6 语句

3.6.1 if 语句

if(i>25){
	alert("大于25");
}else if(i<0){
	alert("小于0");
}else{
	alert("介于0~25之间")
}


3.6.2 do-while 语句

后测试循环语句,至少会被执行一次。(先干了再说!)

var i=0;
do {i +=2;} 
while ( i < 10 );

alert(i)


3.6.3 while 语句
前置测试循环语句,在循环体代码被之前前,都会判断条件。条件不符,可能永远不会被执行。

var i=0;
while (i<10){
	i+=2;
}


3.6.4 for 语句

var count = 10;
for(var i = 0; i < count; i++){
  alert(i);
}


3.6.5 for-in 语句
for-in 是一种精准的迭代语句,可以用来枚举对象的属性。

eg:遍历数组

var x
var mycars=["VW","Volvo","BMW"]
for (x in mycars)
{
	document.write(mycars[x] + "<br />")
}

eg:遍历对象(取 键 / 值(重点!)

/*------------二维对象取键和值---------------*/
var obj ={
				right_001:{ name:"高高",tel:"13687871111"},
				right_002:{ name:"大柴",tel:"13687872222"},
				right_003:{ name:"小柴",tel:"13866001234"}
			}
 
 //遍历出--》键
for (var key in obj) {      //特别注意 :遍历的是键
	alert(key)  //返回 right_001;  right_002;  right_003
}

//遍历出--》值
for (var key in obj) {    
	alert(obj[key])            // 返回 object object object 
	console.log(obj[key])     //逐一打印出来:
}

 下面这个demo是用for in 遍历对象--用2个数组分别存储键/值 (重点!)

var obj={"name":"wjy","age":26,"sex":"female"};//定义一个object对象    
var keys=[];//数组key    
var values=[];//数组value    
  for(var key in obj){    
    keys.push(key);       //键塞到数组  
    values.push(obj[key]);//值塞到数组  
    }    
alert("keys键 :"+keys+" 值values:"+values);   

 

3.6.9 switch 语句
可以在switch语句中,case的值可以是常量,变量或表达式。

eg:经典案例(根据月份信息,页面滑动到自定的tr行。)

$(function(){

	var date=new Date;
	var month=date.getMonth()+1;
	 
	 //定义函数
	function go_this( current_month ){
		current_month.css("background","#fcd54f");
	 	var current_nonth_len = current_month.length;
	 	if(current_nonth_len<=0)
	 	{
	 		alert("本月无续费项目")
	 	}
	 	else{
	 		alert("本月是"+month+"月,一共有"+current_nonth_len+"个客户需要续费")
	 		$("html,body").animate({scrollTop:current_month.eq(0).offset().top},500)
	 	}
	 	
	}
	//条件判断
	switch (month){
	 	
	 	case 1:
	 		go_this($(".month-1"))();
	 	break;
	 	
	 	case 2:
	 		go_this($(".month-2"))();
	 	break;
	 	
	 	case 3:
	 		go_this($(".month-3"))();
	 	break;
	 	
	 	case 4:
	 		go_this($(".month-4"))();
	 	break;
	 	
	 	case 5:
	 		go_this($(".month-5"))();
	 	break;
	 	
	 	case 6:
	 		go_this($(".month-6"))();
	 	break;
	 	
	 	case 7:
	 		go_this($(".month-7"))();
	 	break;
	 	
	 	case 8:
	 		go_this($(".month-8"))();
	 	break;
	 	
	 	case 9:
			go_this($(".month-9"))();
	 	break;
	 	
	 	case 10:
	 	  	go_this($(".month-10"))();
	 	break;
	 	
	 	case 11:
	 		go_this($(".month-11"))();
	 	break;
	 	
	 	case 12:
	 		go_this($(".month-12"))();
	 	break;
	 	
	}

})
<tr class="month-1">
   ...
</tr>

 

3.7 函数

$(function(){
	//函数定义
	function window_title(user_name,user_age){
		alert("你是"+user_name+",今年"+user_age) //字符串与参数的拼接
	}
	
	//函数调用
	$("#btn").click(function(){
		window_title('大柴','35')  //方法名,参数;
	})
})

 

转载于:https://my.oschina.net/u/583531/blog/1581558

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值