js筆記(1)--基本概念

語法

標識符

js中的標識符由字母,$,_以及數字組成,開頭的不能爲數字。函數名,屬性名,變量名可以用標識符表示,不能使用關鍵字和保留字。在js中標識符是區分大小寫的。

註釋

在js中註釋分爲單行註釋和多行註釋。

// 單行註釋
/*  */多行註釋

嚴格模式

ES5中新增嚴格模式,可以在js文件頂部聲明,表示該代碼在嚴格模式下執行:

"use strict"

語句

在js中語句以分號結尾,分號也可以省略,js引擎會自動判斷語句的結束位置。在大括號內的語句組成一個語句塊。

變量

js中的變量定義時無須確定類型,可以存儲任意格式的數據。

定義變量

聲明一個變量,有以下兩種方式:

var

使用var關鍵字定義變量,在函數中爲局部變量,在全局中爲全局變量。

先定義變量再賦值:

var a;//undefined
a=2

定義時初始化一個變量:

var a=2;//2

數據類型

JavaScript中有5種基本數據類型,分別爲Number,String,Boolean,Undefined,Null,以及引用類型Object。

Number

number類型的數據分爲整數、浮點數以及NaN。

  1. 整數
  • 十進制的表示爲不以0開頭的數字;
  • 八進制以0(0o,0O)開頭;
  • 十六進制以0X(0x)開頭;
  • 二進制以0b(0B)開頭。
var a=12;  //12
var a=012; //10
var a=0x12; //18
var a=0b11; //3
  1. 浮點數
    浮點數的表示方法:由整數部分(包含正負號),小數點,小數部分,指數部分(e|E)
3.14
-3.14e+12  //-3.14*10的12次方
3.14e-12 //-3.14*10的-12次方
  1. 轉換爲數字
  • Number()
Number('12') //12
Number(true) //1
Number('12a')//NaN
  • parseInt,parseFloat
parseInt('12') //12
parseInt('12a')//12
parseInt(true)//NaN
  • +
+'12' //12
+'12a' //NaN
+true //1

String

  1. 字符串字面量
    以雙引號或單引號包裹着的字符爲字符串類型。
"hello world"
'hello world'

  1. 轉換爲字符串
  • String()
String(12)//"12"
String(true)//"true"
  • toString()
var age=11
console.log(age.toString())
  • +
12+''//"12"
true+''//"true"

Boolean

  1. 布爾類型字面量
    布爾類型的數據值爲true或false。
  2. 轉換爲布爾值
  • Boolean()
Boolean(1) //true
Boolean('q')//true
Boolean(0)//false
Boolean('')//false
Boolean(null)//false
Boolean(undefined)//false
Boolean(NaN)//false

Undefined

變量已經定義但是未賦值,此時值爲undefined。

Null

null表示一個空的對象指針。

Object

object是一組鍵值對的集合,創建對象可以通過new操作符加上要創建對象的名稱來創建。

var o=new Object()或var o={}

Object的默認屬性和方法,每個實例都會擁有同樣的屬性和方法。

  • constructor,返回創建該對象的函數;
  • hasOwnProperty(propertyName),若該實例中存在該屬性返回true;
  • isPrototypeOf(object)
  • propertyIsEnumerable(propertyName),判斷屬性是否可以枚舉;
  • toLocaleString()
  • toString()
  • valueOf()
var obj={
name:'marry',
age:12
}
obj.constructor //Object(){} 
obj.hasOwnProperty('name') //true
obj.hasOwnProperty('sex') //false
obj.toString() //"[object Object]"
obj.toLocaleString() //"[object Object]"
obj.valueOf() //{name:'marry',age:12}
obj.propertyIsEnumerable('name') //true
obj.propertyIsEnumerable('constructor') //false

typeof

可以使用typeof操作符檢測基本數據類型。

typeof 123 //"number"
typeof '123' //"string"
typeof true//"boolean"
typeof b//"undefined"
typeof null//"null"

操作符

  1. 一元操作符
  • 遞增和遞減
var i=0;
i++; //0
++i;//2
var i=0;
++i;//1
  • 一元加減
num=+num
num=-num
  1. 位操作符
    數值的二進制計算。
  • 按位非(~)
  • 按位與(&)
  • 按位或(|)
  • 按位異或(^)
  • 左移(<<)
  • 有符號的右移(>>)
  • 無符號右移(>>>)
  1. 布爾操作符
    用作邏輯判斷,經常用於if的條件中。
  • 邏輯非(!)
    一個操作數,結果與操作數的結果相反
  • 邏輯與(&&)
    兩個操作數,只有當兩邊的結果都爲true時返回true
  • 邏輯或(||)
    兩個操作數,兩邊值中只要有一個爲真,返回的結果就爲真
  1. 乘性操作符
  • 乘法(*)
  • 除法(/)
  • 求模(%)
  1. 加性操作符
  • 加法(+)
  • 減法(-)
  1. 關係操作符
    <,>,<=,>=
  2. 相等操作符
  • 相等和不相等(==,!=)
    等式兩邊會先轉換再比較。
null==undefined //true
"NaN"==NaN //false
1==true //true
"4"=4 //true
  • 全等和不全等(===,!==)
    等式兩邊在未轉換前相等返回true。
  1. 條件操作符

如果num1小於num2,返回num1,否則返回num2。

var max=(num1<num2)?num1:num2
  1. 賦值操作符(=)
var num=10
num+=10
  1. 逗號操作符
var num1=1,num2=2,num3=3;

語句

程序是由一條條語句組成的,程序是從上到下,順序執行的。語句通常以;爲結尾,表達式也可以爲作爲一條語句,用{}括起來的爲語句塊,語句塊通常用於流程控制,主要的流程控制有條件和循環。

條件語句

條件語句通過根據指定的條件判斷,來決定下一步的執行代碼。

if語句

  • if…else語句
var x=1;
var y=2;
if(x<y){
	console.log('x小於y')
}else{
	console.log('x大於y')
}

if中的條件判斷會自動轉換爲ture或false,當條件表達式的值爲0,false,空字符串,NaN,undefined,null時,執行else中的語句。

  • if…else if…else

switch語句

var x=1;
switch(x){
	case 1:
		console.log('hellow')
		break
	case 2:
		console.log('world')
		break
	default:
		console.log('!')
		break	
}

switch中放的是表達式,表達式的值決定了執行哪個case子句,如果沒有找到匹配的值,執行default中的語句。

循環和迭代

while語句

當滿足while中的條件時,執行循環體。一旦不滿足,不會執行循環體。

var x=0;
while(x<10){
	x++;
	console.log(x)
}

do…while語句

執行do中的語句塊直到while的條件不滿足,循環體至少執行一次。

var x=0;
do{
	x++;
	console.log(x)
}while(x<10)

for語句

for(var i=0;i<10;i++){
	console.log(i)
}

for…in

for…in用於遍歷對象中的可枚舉屬性。

var obj={
	'a':1,
	'b':2
}
for(var i in obj){
	console.log(i)
} // a   b

break和continue

break爲跳出循環繼續執行循環外的語句,continue爲跳出本次循環重新開始循環。

函數

function fname(args){
	//語句塊
}

fname()  //調用函數

函數參數

js沒有函數重載,因爲函數的參數可以是多個,參數在js中是一個類數組的存在,無論多少參數,函數接收的到的只有這個類數組arguments。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章