1. 程式人生 > >js介紹-js中的變數和資料型別及相互轉換-運算子及表示式

js介紹-js中的變數和資料型別及相互轉換-運算子及表示式

1、什麼是js?
2、如何編寫js?
3、如何除錯js?

1、什麼是js:專門編寫網頁互動的語言

互動:使用者操作->程式處理和響應操作->返回處理結果

js運行於js直譯器\引擎 ->解釋執行

js的發展歷程

1995 網景:領航者 –livescript
sun java
1996 JavaScript1.1 –》ECMA–》ECMAScript
網景-JavaScript
微軟-JScript
1999 W3C:DOM標準-專門操作網頁的標準
2004

JavaScript=ES+DOM+BOM
API:程式設計介面

js能做什麼:

客戶端資料計算
表單輸入驗證
瀏覽器事件觸發和處理
網頁特殊效果
伺服器非同步資料提交 Ajax

2、如何編寫js

1、執行環境

1、瀏覽器js引擎中
瀏覽器包括兩個引擎
內容排版引擎
指令碼解釋引擎
2、獨立安裝的js直譯器-node.js

2、編寫

1、不需要網頁直接在控制檯中編寫js
Console:專門編寫和測試js小程式的地方
console控制檯視窗
.的
log():控制檯提供的一個功能
接受一個字串引數並在控制檯輸出
注:大小寫一定區分
2、隨網頁一起編寫
1、在頁面建立<script>標籤
2、在外部建立.js檔案<script>

引入
3、任意元素事件屬性中
3、除錯js
bug:程式中出現的錯誤
debuger:解決錯誤方法

變數
資料型別
1、變數

what:記憶體中儲存一個數據的儲存空間,並且起一個名字
when:程式中每個資料都需要用變數儲存,在使用變數執行
why:讓程式更加靈活
how: 宣告 賦值 取值
宣告:var 變數名;

變數名命名規則:
語義化
駝峰式命名
由數字、字母、下劃線
不能以數字開頭
不能使用保留字

賦值:變數名 = 資料
變數賦值 本質:新值替換舊值
**注:任何運算都無法修改變數中的值
只有賦值=才能改變**
取值:使用變數名就相當於呼叫變數中的值

特殊情況:
1、僅宣告 未賦值;
2、未宣告 取值
ReferenceError:未定義找不到物件
3、未宣告 賦值

var 宣告
宣告提前:在執行程式碼之前會將所有的var宣告提前,提前到當前作用域頂部,集中宣告建立,再開始執行程式。
賦值留在原地

2.常量 :一旦建立並初始化後值不可改變的量

const 常量名 = 常量值
聲明後必須賦值

3.字面量:

資料型別:記憶體中儲存的不同資料的儲存格式;

2大類:

1、原始資料型別:值直接儲存在變數本地
Number String Boolean undefined null
Number:專門儲存數字的資料型別
String:專門儲存字串的資料型別
Boolean:真|假
undefined:undefined
null:不指向任何地址
2、引用資料型別:值不直接儲存在變數本地

Number:

可以是整數,也可以是浮點數(小數)
when:要參與算數計算或比較大小的資料
10
2 01101
8 0,0o
16 0x
NAN:not a number
Infinity
所佔空間
64位2進位制數字儲存
64bit
8bit=1bytes
舍入誤差:計算機無法精確計算1/10導致的計算誤差

String:

必須帶引號
所佔空間:unicode
字母 符號127 1位元組
漢字 2位元組
“hello老師”
字串一點建立 不可改變
想改變只能用一個新字串替代舊的字串

Boolean:表示2選一的時候
undefined:變數未賦值的時候自動賦值
null:

資料型別轉換
運算子和表示式

1、資料型別轉換

js是一門弱型別語言:
1、js在宣告變數的時候不需要規定變數的儲存型別;
2、賦值時,動態絕定變數資料型別;
同一變數可先後儲存不同資料型別
3、js運算時,會根據需要自動轉換資料型別

大類:

1、隱式轉換:不需要程式設計師干預,js自動完成的型別轉換
無處不在
僅討論算數計算中隱試轉換
在算數計算中 一切資料都預設轉換成數字在計算
**注:在+運算過程中碰到字串+變為字串拼接
另一個不是字串的資料,都會被自動轉成字串**
Boolean:
true->1
false->0
**特殊情況:如果資料無法轉換成數字型別
會被轉化成NAN
參與任何計算結果永遠是NAN**
補:表示式:由資料、變數和運算子組成的公式
預設從左往右 兩兩計算
任何表示式都有一個運算結果
所以任何表示式都可以當成一個值來用
隱試轉換僅影響表示式的運算結果,不會影響變數中儲存實際值
2、強制轉換:程式設計師主動呼叫專門的函式(方法)執行轉換
when:隱試轉換後的結果不是我們想要的結果時
任意–>String:
1、X.toString();
除null和undefined以外任意物件都有toString();
2、String(X);隱式轉換原型
任意–>Number:
1、Number(X);隱式轉換原型
專用於將非字串型別轉數字
如果想轉字串要求必須是由純數字組成的字串
2、字串轉數字
parseInt(str)
從第一個字元開始依次讀取每個字元
只要碰到一個非數字字元就停止
自動忽略開頭的空格
轉整數
parseFloat(str)
找第一個小數點
轉浮點數
Number(X) VS parseInt(str)/parseFloat(str)
true
“12px”
任意–>Boolean
Boolean()隱式轉換原型
5值轉Boolean是false
“” NAN undefined null 0

這裡寫圖片描述

2、運算子和表示式:
程式:讓計算機按照人的想法去執行任務
運算子:程式中模擬人思維運算或判斷的符號
表示式:由變數、資料和運算子組成的公式

1、算數運算子:+ - * / % ++ –
%取餘(模運算)
++n:表示式返回n自增以後的新值
n++:表示式返回n自增以後的舊值
2、關係運算:將兩個值作比較 true false
< >= <= == === !=
在關係運算中預設將所有型別都轉換成數字
特殊情況:如果參與比較的兩個值都是字串
依次取出每個字串的字元PK unicode
**NaN:不等於 不大於 不小於任何值(包括自己)
isNaN(num)專門用來判斷 num是不是NaN**