Javascript编程基础1
?
1.簡單值和復雜值的區別
簡單數據類型所創建的值被稱之為簡單值,而復雜數據 類型所創建的值被稱之為復雜值。
那么簡單值和復雜值具體有什么區別呢?
1.簡單值(或原始值)
簡單值是表示JS中可用的數據或信息的最底層形式或最簡單形式。簡單類型的值被稱為簡單值, 是因為它們是不可細化的。
也就是說,數字是數字,字符是字符,布爾值是true或false, null和undefined就是null和 undefined。
2.復雜值
在JavaScript中,對象就是一個復雜值。因為對象可以向下拆分,拆分成多個簡單值或者復雜 值。復雜值在內存中的大小是未知的,因為復雜值可以包含任何值,而不是一個特定的已知值。 所以復雜值的數據都是存儲于堆區里面。
3.訪問方式
按值訪問
簡單值是作為不可細化的值進行存儲和使用的,引用它們會轉移其值
引用訪問
復雜值是通過引用進行存儲和操作的,而不是實際的值。創建一個包含復雜對象的變量時,其值 是內存中的一個引用地址。引用一個復雜對象時,使用它的名稱(即變量或對象屬性)通過內存中 的引用地址獲取該對象值
4.比較方式
簡單值采用值比較,而復雜值采用引用比較。復雜值只有在引用相同的對象(即有相同的地址)時 才相等。即使是包含相同對象的兩個變量也彼此不相等,因為它們并不指向同一個對象
5.動態屬性
對于復雜值,可以為其添加屬性和方法,也可以改變和刪除其屬性和方法;但簡單值不可以添加 屬性和方法
6.變量賦值
最后說一下關于變量的賦值,其實是可以分為直接賦值和引用賦值的。直接賦值,就是指將簡單 值賦值給變量,而引用賦值是指將一個復雜值的引用賦值給變量,這個引用指向堆區實際存在的 數據。
直接賦值
let a = 3;
let b = a;
b = 5;
console.log(a);//3
引用賦值
let a = {value : 1};
let b = a;
b.value = 10;
console.log(a.value);//10
2類型轉換
通過前面的介紹,我們已經知道了在JavaScript中有好幾種不同的數據類型。然而這些數據類型 都是可以相互轉換的。類型轉換可以分為兩種,隱性轉換和強制轉換。
1.隱性轉換
當不同數據類型進行相互運算的時候,
當對非布爾類型的數據求布爾值的時候
預期為數字的時候:
算術運算的時候,我們的結果和運算的數都是數字,數據會轉換為數字進行計算(-* / %)
2.強制轉換
轉換為數值 number() , parseInt() , parseFloat()轉換函數
小技巧:
?轉換字符串:a=""+數據
-轉換布爾:!數據類型
-轉換數值:數據類型*或/I
?
運算符
?
1算數運算符
常見的算數運算符有加減乘除和取模運算。主要需要注意的就是,在動態語言中做除法運算時, 能夠得到小數。下面是關于算數運算符的示例:
?
2 一元運算符
所謂一元運算符,就是指只作用于一個操作數的運算符。常見的一元運算符有兩種,賦值運算符 和遞增遞減運算符。
關于賦值運算符,前面我們已經見到過了。最常見的就是=,代表將右邊的內容賦值給左邊。除 此之外,還有+=、-=、*=等一系列賦值運算符,具體的示例如下:
let a = 5;
a += 5;
console.log(a); // 10
a -= 3;
console.log(a); // 7
a *= 5;
console.log(a); // 35
a /= 5;
console.log(a); // 7
a %= 2;
console.log(a); // 1
2.遞增和遞減
除了上面所介紹的賦值運算符以外,常見的一元運算符還有遞增和遞減。在遞增遞減中,主要需 要注意前置和后置的區別。如果是前置,那么是先自增或自減,然后參與運算。如果是后置,則 是先參與運算,然后再自增或者自減,示例如下:
前置示例:
let a = 2;
let b = 10;
let c = 一a + b;
let d = a + b;
console.log(a,b,c,d);//1 10 11 11
后置示例:
let a = 2;
let b = 10;
let c = a一 + b;
let d = a + b;
console.log(a,b,c,d);//1 10 12 11
需要注意的是,我們的自增自減操作符不僅僅局限于數值,其他類型也可以,遵循下面的規則:
?在應用于一個包含有效數字字符的字符串時,現將其轉換為數字值,再執行加減1操作。字 符串變量變為了數值變量。
-在應用于一個不包含有效數字字符的字符串時,將變量的值設置為NaN,字符串變量變成數 值變量。
-遇布爾值false時,先將其轉換為0再執行加減1操作,布爾值變量變成數值變量。
-遇布爾值true時,先將其轉換為1再執行加減1操作,布爾值變量變成數值變量。
?在應用浮點數數值時,執行加減1操作。
示例:
let si = "123";
let s2 = "123Hello";
let s3 = "Hello";
let s4 = true;
let s5 = 3.14;
console.log(一s1);//122 console.log(一s2);//NaN console.log(一s3);//NaN console.log(一s4);//0 console.log(一s5);//2.14
?
3比較運算符
?
1.關系運算符
小于,大于,小于等于,大于等于
==表示相等,!=表示不相等,數據類型不同的數據進行相等比較的話會自動轉換數據類型, 還有一些其他的轉換規則如下:
? null和undefined是相等的
?如果有一^操作數是NaN,則返回false, NaN和NaN比較也是false
-如果是數字的字符串和數字進行比較,會先將字符串轉換為數字
?布爾值里面true轉換為1, false轉換為0
?
全等是===,不全等是!==這個就是必須數據類型和數值都相等
4邏輯運算符
所謂非,就是取反,非真即假,非假即真
作用于兩到多個值,并且只有所有的操作數都是真值時,才為true
3.或‖
同樣是作用于兩到多個值,但是只要有一個操作數為真,就返回真
?
6運算符優先級
JavaScript中的運算符優先級是一套規則。該規則在計算表達式時控制運算符執行的順序。具有 較高優先級的運算符先于較低優先級的運算符執行。
例如,乘法的執行先于加法。
下表按從最高到最低的優先級列出JavaScript運算符。具有相同優先級的運算符按從左至右的順 序求值。
運算符描述
| .[]() | 字段訪問,數組下標,函數調用以及表達 式分組 |
| ++ 一 - ~ ! delete new void | typeof —元運算符,返回類型,對象創建,未定 義值 |
| * / % | 乘法,除法,取模 |
| + - + | 加法,減法,字符串拼接 |
| << >> >>> | 移位 |
| < <=> >=instanceof | 小于,小于等于,大于,大于等于,instan ceof |
| == 1= === |== | 等于,不等于,全等,不全等 |
| & | 按位與 |
| | | 按位異或 按位或 |
| && | 邏輯與 |
| || | 邏輯或 |
| ?: | 三目運算符 |
| = | 賦值 |
| ? | 多重賦值 |
?
?
?
第3章流程控制語句
所謂流程控制,主要就是用于控制整個程序的走向的。默認情況下,程序是從上往下,逐條執行,這種情況我們將其稱之為順序結構。但是并不是所有的程序都是使用順序結構就能夠完成的。在我們書寫程序時往往還需要對整個程序進行分之,或者對某段代碼進行重復執行。
?
條件語句?
?
單分支語句?:由一個if組成,如果條件成立,則進入代碼塊開始執行語句,如果條件不是一個布爾值,那么會被自動轉換為布爾值
If(條件){
輸出代碼;
}
多分支語句?:有兩個分支線,如果i條件不成立,那么就會跳入到else語句里面,
if(條件){
執行代碼
}
Else{
執行代碼
}
三目運算符:if...else語句的一個縮寫方式,就是使用三目運算符
條件?(條件為真是執行的代碼):(條件為假的時候執行的代碼)
邏輯決策樹
If(條件){
執行語句
}
Else?if(條件){
執行語句
}
?Else?if(條件){
執行語句
}
?
?
Switch語句
Switch(條件){
????? Case?1:執行語句;
Break;
Case?2:執行語句;
Break;
Case?3:執行語句;
Break;
Case?4:執行語句;
Break;
?
}
?
?
?
?
轉載于:https://www.cnblogs.com/RAINBOW1357/p/11400675.html
總結
以上是生活随笔為你收集整理的Javascript编程基础1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jpa单向多对一关联映射
- 下一篇: 页面的制作过程