JavaScript:簡稱JS程序員
JS的原名不是JavaScript,而是LiveScript數據庫
JS分爲三個部分瀏覽器
1.ECMAScript 標準→JS的基本的語法函數
2.DOM——Document Object Model 文檔對象模型spa
3.DOM——Browser Object Model 瀏覽器對象模型翻譯
JavaScript是什麼?對象
是一門腳本語言:不須要編譯(翻譯),直接運行ip
是一門解釋性的語言:遇到一行代碼就解釋(執行)一行代碼內存
是一門動態類型的語言文檔
是一門基於對象的語言
是一門弱類型的語言,聲明變量的時候都是使用var
(編譯語言:須要把代碼翻譯成計算機所認知的二進制語言纔可以執行
腳本語言:不須要編譯,直接執行)
變量
操做的數據都是在內存中操做的
JS中存儲數據使用變量的方式(名字,值→數據)
JS中聲明變量都用var→存儲數據,數據應該有對應的數據類型
JS中的字符串類型的值都用雙引號或者單引號
變量的做用:用來操做數據的,能夠存儲,能夠讀取
變量的聲明:var 變量名字
變量的初始化:var 變量名字=值;又叫字面量的方式賦值
變量聲明(有var 有變量名字,沒有值)
變量初始化(有var 有變量名字,有值)
var 是變量的名字
「=」等號的意義是賦值的含義
var number;//變量的聲明,此時是沒有賦值的(裏面是沒有數據的,由於沒有寫「=」號)
var x,y,z,k,j;(都是聲明,沒有賦值);//一次性聲明多個變量
變量的初始化(變量聲明的同時而且賦值了)
存儲一個數字10 //var number=10
存儲一我的的名字 //var name=「小孩」
存儲真(true) //var flag=true
存儲一個null→至關因而空 //var nll=null
存儲一個對象 //var obj=new object()
須要注意基本代碼的規範:
1.JS中聲明變量都是用var
2.JS中每一行代碼結束都應該有分號(寫一行代碼結束要有寫分號的習慣,這是一種規範,規定。若是不寫,後期代碼愈來愈多就越容易出錯。);
3.JS中的大小寫是區分的;例:var N=10;var n=10,這個N和n是不同的,它們沒有關係。
4.JS中的字符串可使用單引號,也可使用雙引號,目前咱們暫時使用雙引號。
變量名的注意問題——變量名的命名規範,要遵循駝峯命名法
1.變量的名字要有意義,(方便其餘人能看懂)(代碼越規範別人讀取越清晰)
2.變量名有必定的規範:通常以字母,$符號,下劃線開頭,中間或者後面能夠有$符號,字母,數字
3.變量名通常都是小寫的
4.變量名若是是多個單詞,第一個單詞的首字母是小寫,後面的全部的單詞的首字母都是大寫的,這種命名的方式稱爲:駝峯命名法。
5.不能使用關鍵字(好比系統自帶的一些單詞,不能使用)
6.不會單詞用拼音,拼音也要遵循駝峯命名法
變量的交換:
例子:
第一種方式: 使用第三方的變量進行交換
var num1=10;
var num2=20;
var temp=num1;
num1=num2;
num2=temp;
第二種方式交換:通常適用於數字的交換
var num1=10;
var num2=20;
//把num1的變量中的值和num2變量中的值,取出來相加,從新賦值給num1這個變量。
num1=num1+num2;//30
//num1變量的值和num2變量的值取出來,相減的結果從新賦值給num2.
num2=num1-num2;//10
//num1變量的值和num2變量的值取出來,相減的結果從新賦值給num1(num2已經從新賦值了,num2=10,代入進去就獲得num1=30-10=20)
num1=num1-num2;//20
console.log(num1,num2);【把num1和num2放在一塊兒,這樣能夠一塊兒輸出】
拓展的變量的交換:位運算
var num1=10;
var num2=20;
num1=num1^num2
num2=num1^num2
num1=num1^num2
註釋:是解釋代碼的含義,方便本身或者給其餘的程序員看的
註釋的方式:
1.單行註釋 // 通常用在一行代碼的上面
2.多行註釋 /*中間這裏寫註釋的內容*/ 通常用在函數或者是一段代碼的上面
註釋後的代碼是不執行的
JS中的數據類型有哪些?
JS中的原始數據類型:number、string、boolean、null、undefined、object
number:數字類型(包含整數和小數)
string:字符串類型(字符串類型的值通常都是用單引號或者雙引號括起來)
boolean:布爾類型(布爾類型的值只有兩個,true(真1),false(假0))
null:空類型,值只有一個:null。當一個對象指向爲空了,此時能夠賦值爲null
undefined:未定義,值只有一個:undefined
object:對象
什麼狀況下的結果是undefined?
變量聲明瞭,沒有賦值,結果是undefined。
函數沒有明確的返回值,若是接收了,結果也是undefined。
若是一個變量的結果是undefined和一個數字進行計算,結果是:NaN(not an number)不是一個數字也沒有意義。
如何獲取這個變量的數據類型是什麼?使用typeof來獲取。
typeof的使用的語法:
均可以獲取這個變量的數據庫類型是什麼!
typeof加變量名;
typeof(變量名);
console.log(typeof(變量名));
JS中能夠表示哪些進制?
JS中沒有二進制
十進制:數字序列範圍0、1
八進制:數字序列範圍0~7
十六進制:數字序列範圍:0~9以及A~F
var num=10;//十進制
var num2=012;//八進制
var num3=0x123;//十六進制
數字類型是有範圍的:最小值和最大值
console.log(Number.MAX_VALUE);數字的最大值
console.log(Number.MIN_VALUE);數字的最小值
無窮大:Infinity
無窮小:-Infinity
總結:
1.數字類型:number類型
2.不管是整數仍是小數都是數字類型
3.不要用小數驗證小數, 不然有時將會出現bug
4.不要使用NaN判斷是否是NaN,應該使用isNaN(值或者是變量);
5.想要表示十進制:就是正常的數字
6.想要表示八進制:以0開頭
7.想要表示十六進制:以0x開頭
string數字類型
字符串可使用單引號,也可使用雙引號;
(字符串的個數有多少個?(這個字符串的長度是多少?))
字符串的長度如何獲取?變量名.length
JS中的字符串裏也有轉義符
\b 退格
\f 走紙換頁
\n 換行
\r 回車
\t 橫向跳格(Ctrl—I)(tab鍵)
\’ 單引號
\" 雙引號
\\ 反斜槓
字符串的拼接:使用「+」能夠把多個字符串放在一塊兒造成一個字符串;
只要有一個是字符串,其它的是數字,那麼結果也是拼接,不是相加;
若是有一個是字符串,另外一個不是字符串,使用-、*號,此時會發生計算
瀏覽器幫助咱們自動的把字符串類型轉成數字類型,這種方式叫:隱式轉換(自動轉換)
boolean布爾類型
布爾類型的值有兩個,一個是ture(真),一個是false(假);
計算機內部存儲:true爲1,false爲0;
Undefined和Null
undefined表示一個聲明瞭沒有賦值的變量,變量只聲明的時候值默認是undefined
null表示一個空,變量的值若是想爲null,必須手動設置
類型轉換
1. 其它類型轉數字類型:三種方式
2. 其它類型轉字符串類型
3. 其它類型轉布爾類型
其它類型轉數字類型:三種方式
1.parseInt();//轉整數
console.log(parsrInt(「10」));//10
console.log(parsrInt(「10jjsssxxx」));//默認轉換成10,後面的字母自動忽略;
console.log(parsrInt(「g10」));//NaN(不是一個數字)
console.log(parsrInt(「1」));//1
console.log(parsrInt(「10.924」));//10默認轉換成整數
console.log(parsrInt(「10.23hhj」));//10默認轉換成整數
2.parseFloat()//轉小數 。結果與轉整數差很少,只不過轉的是小數
3.Number();//轉數字。
小數和整數都是數字,因此均可以轉,若是添加了不是數字的字符,那就會出現NaN;
總結:想要轉整數用parseInt();想要轉小數用parseFloat();想要轉整數用Number()(Number()這種方式要比上面的兩種方式嚴格);
(瀏覽器顯示黑色的,說明是字符串類型)
其它類型轉字符串類型:
1. .toString()
var num=10;
console.log(num
.toString());//字符串類型
2. String();
var numl1=20;
conso.log(Strong(numl1));
若是變量有意義,調用 .toString()轉換
若是不量沒有意義,使用String()轉換
其它類型轉布爾類型:
Boolran(值)
console.log(Boolean(1));//ture
console.log(Boolean(0));//false
console.log(Boolean(11));//ture
console.log(Boolean(-10));//ture、
console.log(Boolean(「哈哈」));//ture
console.log(Boolean(「」));//flase
console.log(Boolean(null));//false
console.log(Boolean(undefined));//false
運算符(又叫操做符)
操做符:是一些符號→是用來計算
運算符分爲:
算數運算符
一元運算符
二元運算符
三元運算符
複合運算符
關係運算符
邏輯運算符
算數運算符: + - * / %(取餘,取餘數)
算數運算符的做用是用來計算的
算數運算表達式:由算數運算符鏈接起來的表達式
操做符兩邊的操做數能夠是:數字、變量或者表達式。
一元運算符:這個操做符只須要一個操做數就能夠運算的符號 ++ --
二元運算符:這個操做符須要兩個操做數就能夠運算的符號
複合運算符:+= -= *= /= %=
複合運算表達式:由複合運算符鏈接起來的表達式
var num=10;
num+=10;→就是:num=num+10
關係運算符:> < >= <= == === != !==
關係運算表達式:由關係運算符鏈接起來的表達式
關係運算表達式的結果是布爾類型。
==不嚴格的相等 ===嚴格的相等
==只需判斷值一不同就能夠了不須要判斷類型,
===既須要判斷值一不同,又須要判斷類型一不同
!=不嚴格的不等
!==嚴格的不等
邏輯運算符:&& // !
邏輯運算表達式:由邏輯運算符鏈接起來的表達式
&&---邏輯與(與---而且)
//---邏輯或(或---或者)
!---邏輯非(非---取反--取非)(取反,取相反的結果)
表達式1 && 表達式2
若是有一個爲false,整個的結果就是false
表達式1 // 表達式2
若是有一個爲true,整個的結果爲true
!表達式1
表達式1的結果是true,整個結果爲false
表達式1的結果是false,整個結果爲true
運算符的優先級
優先級從高到底
1. () 優先級最高
2. 一元運算符 ++ -- !
3. 算數運算符 先* / % 後 + -
4. 關係運算符 > >= < <=
5. 相等運算符 == != === !==
6. 邏輯運算符 先&& 後||
7. 賦值運算符 =
字面量:把一個值賦值給一個變量 var num=10;