JavaScript變數宣告+資料型別+數字格式+操作符+進位制
文章目錄
1.那些高大上的概念術語都是指什麼
什麼是web應用?
在瀏覽器中操作的應用。web應用分為前臺和後臺。
什麼是前臺後臺?
以qq郵件網站為例
前臺:顯示在瀏覽器裡電子郵件操作的網頁介面
後臺:提供使用者填寫信件的介面,負責傳送郵件
怎麼做網頁介面呢?
HTML:架構
CSS:外觀樣式
JavaScript:動態改變字型樣式,大小,插入表情圖案等互動功能。
JavaScript可以應用到什麼上面?
前臺網頁:web瀏覽器
後臺伺服器:Node.js 雲伺服器
微控制器和感測器終端:Espruino
2.JavaScript例項:
我們先在瀏覽器中執行一下:
開啟瀏覽器,按下"Ctrl+Shift+J"快捷鍵,就打開了JavaScript工具臺。
在控制檯輸入如下程式碼並enter
alert("hello world");
效果:
在控制檯輸入如下程式碼並enter
confirm("你喜歡橘貓嗎?");
好了我們看看JavaScript的特點
逐行執行,每次執行後面有一個結果
(undefind表示指令沒有返回值)
如果您想要輸入多行程式碼怎麼辦?
每行結尾按"shift+enter"代表換行
最後"enter"代表執行
上面都是直接在瀏覽器中輸出,那如何在JavaScript控制檯輸出訊息?
這個問題很有必要,這對測試程式碼很有幫助
很簡單,輸入程式碼:
console.log("hello");
這裡如果直接用log(“hello”)不行,因為JavaScript內建物件裡面存的是指令,我們要通過物件呼叫它裡面的指令而不能直接呼叫。
物件裡面可以儲存函式(方法),資料值(屬性)
並且用點號呼叫
3.語言基礎
變數宣告
var 變數名稱;
不區分字元和字串,所有文字資料都是字串(string)型別
var Name = "Jimmy";//雙引號單引號均可
var PP = "j";//雙引號單引號均可
多個變數可以在一個var語句中宣告
var name= "Jimmy",age=18;
資料型別
動態型別語言,可以自動轉換型別,宣告變數時無需轉換型別
var x ="hello";
x=12;//這也造成效能瓶頸,因為它多了辨別變數資料型別這一步
基本資料型別:
存放單一資料
Boolean,Number,String,Null,Undefined
var obJ = null;//沒有指向任意物件的引用
var ref //預留儲存器空間但沒給值,Undefined
檢視資料型別:
typeof
引用物件的變數,typeof返回object。
console.log(typeof "hello");//輸出string
console.log(typeof 6);//number
console.log(typeof 6.66);//number
console.log(typeof true);//boolean
console.log(typeof undefined);//undefined
console.log(typeof null);//object
引用資料型別:
可以通過引用儲存器空間實現儲存多個變數
array,object,function
數字格式與算術操作符
’+'操作符
var num=123+456;
console.log(num);//579
var str=123+"456";
console.log(str);//123456
’number’和’parseInt’,'praseFloat’
Number("6.66")//6.66
Number("jym666")//NaN
Number("1e2")//100
Number("0xcc")//204(十六進位制轉十進位制)
parseInt("6.66")//6
parseInt("jym666")//NaN
preseInt("666jym")//666
preseInt("1e2")//1
preseInt(0xcc)//204
preseFloat("1e2")//100
還有一個精度問題:
console.log(0.1+0.2==0.3)//false
因為0.1換成二進位制會產生無限迴圈的數字,而計算機數字儲存空間有限,所以產生誤差
解決辦法:限制精度
var num=0.1*0.2;
console.log(parseFloat(num.toPrecision(12)));//精度縮減小數點後十二位輸出0.02
比較操作符:
/*
== 判斷是否相等
=== 判斷是否相等且資料型別也相同
!= 判斷是否不相等
!== 判斷是否不相等或資料型別不同
*/
console.log(8==9)//false
console.log(8=='8')//true,'8'會先被轉換成8
console.log(null==undefined)//true,預設不區分
console.log(8==='8')//false,型別不同
console.log(null===undefined)//false,型別不同
console.log(8!=='8')//true,型別不同
邏輯操作符
類似c語言的不再贅述
&& || !
特殊的:能以單一語句判斷並賦予變數初始值
undefined || 13
//13
''||'1.1.1.1'
//"1.1.1.1"
var ip=ip||'1.1.1.1';
ip
//"1.1.1.1"
進製表示方法
十六進位制 (0x開頭)hex
二進位制(0b)binary
八進位制(0o)octal
在控制檯輸入上述進位制,直接轉換成十進位制
位操作符
不管怎麼操作,最終直接轉十進位制輸出
& 位and
| 位or
^ 位xor
>> 1
>>2
<< 1
<< 2
條件操作符:
var msg=(age<18)?"請您離開":"歡迎觀賞";
//相當於
if(age<18){
msg="請您離開";
}else{
meg="歡迎觀賞";
}