1. 程式人生 > >JavaScript變數宣告+資料型別+數字格式+操作符+進位制

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="歡迎觀賞";
}