js最基礎知識回顧6(變數,預解析,引用,索引)

2022-07-15 17:39:17 字數 3095 閱讀 4514

一、變數

1. 作用域:全域性、區域性、閉包

2. var a=12;   不加var,會變成全域性變數。

3. 全域性變數:容易重名,影響效能

4. 區域性變數和全域性變數重名,區域性會遮蔽全域性。

5. 給window加東西,是全域性的。用途:把封閉空間的東西,變成全域性。

(function())()

二、預解析

1. 系統會把所有變數的宣告,放在最上面。只是宣告到上面,賦值還在原來的位置。

2. 預解析的作用域:不會脫離原本的作用域。函式中,變數放在函式最上面;全域性中,放在程式最上面。

3. 作用域可以突破script:讀取乙個script--->預解析--->執行--->讀取下乙個script

4. 開始先把變數分配好,避免後面折騰

5. 函式也有預解析

if(num%2==0)else

var num=12;

預解析,var num,此處是undefined,所以undefined%2即undefined,為假,所以走else

例子:aaa();//此處報錯 aaa is not a function

var aaa=function()

所以,函式賦值給變數,按照變數的規則走。

三、引用

1. object賦值的時候不會複製,只是兩個變數會指向同一塊記憶體。任何東西都是存放在記憶體中。

var arr=[12,4,3];

var arr2=arr;

arr2.push(6);

alert(arr+'\n'+arr2);//都是[12,4,3,6]

2. 如果想解決,通過for迴圈單獨新增。

var arr1=[12,5,3];

var arr2=;

for(var i=0; iarr2.push(arr1[i]);

}arr2.push(6);                //arr2=[12,4,3,6];

alert(arr1+'\n'+arr2);  //arr1=[12,4,3]

四、索引

1. charat(索引):獲取某一位置的字串;

2.字串-->編碼:charcodeat(索引):獲取某一位置字串的編碼。

a->97    b->98    c->99   z->122   =->61   ?->63    1->49    2->50

3.編碼-->字串:string.fromcharcode(編碼)

for(var i=1;i<=10000;i++)

4. 中文:4e00~9fa5: 即19968~40869。js中,十六進製製用0x

4e00-->一

列印所有的漢字:

for(var i=0x4e00;i<=0x9fa5;i++)

5. 使用十六進製制表示漢字:alert('\u4e00')---  一        其中「\」是轉義符

6. 所有字串都有編碼,字串比較按照編碼大小排列

加密:

obtn1.onclick=function()

otxt2.value=str2;

}五、 關於比較的問題

(1)字串比較的是內容,只要文字相同,就相等    aa

(2)陣列:屬於object型別,是新建的,所以下面的arr1和arr2不相等

var arr1=[12,5];

var arr2=[12,5];

alert(arr1==arr2);   //false

(3)函式:

function aaa()

function bbb()

alert(aaa==bbb);  //false;

完整寫法:new function();

所以,只要是new出來的,就不相等。

(4)位元組長度

字母:1位元組       漢字:2個或3個位元組    utf-8格式,佔得多3個位元組   gb2312--2個位元組    可以了解頭資訊

計算位元組長度

var str='abc啊';

function getbylon(str,type)else

}else

}return res;

}alert(getbylon(str,'utf-8'));

六、in——檢測屬性是否存在

var json=;

alert(a in json);   //報錯   因為 不加引號-->變數

alert('c' in json);  //false

注意:必須用字串,只能用於json,不能用於陣列

相容,但是沒啥用

用什麼檢測呢?

var json=;

if(json.a)else

小問題,0是假的,如果恰巧json.a的值是0呢? --彈0

七、異常

(1)什麼是異常:程式無法處理的錯誤

(2)try   catch:防止報錯。try中的有問題,catch才會執行

try//可以用則用它;chrome,ff,ie9++;

catch(e)

try中的**執行很慢,且不好除錯。所以,js中沒啥大用。用於應急。

八、表示式

(1)賦值表示式:alert(a=12);   賦值語句本身也有值

(2)連等:alert(a=b=c=5);//5

(3)逗號表示式:聽最後乙個。且不能跟var 一起使用。

逗號的優先順序很低。alert((1,3));//必須加();  

if(12,0)else

Java基礎知識回顧 6

1 遍歷 jar zip 檔案中的資源 file jar newfile myfile.jar zipinputstream zis new zipinputstream newfileinputstream jar try finally 2 遍歷web應用中的資源。setsubresources...

js基礎知識回顧5

字串 字串和陣列類似,可以通過其索引位置來找到其值 charat index 找到索引值對應的字元 var str abd rt 45 sgds for var i 0 icharcode index 先根據下標找到對應的值,再輸出其值的asi碼 fromcharcode 輸出asi碼對應的字母 v...

python之6核心基礎知識之引數與變數

6.1 形參與實參以及位置引數 6.2 預設引數 引數在前,預設引數在後 def test a 1 b 2,c 3 print a d b d c d a,b,c test c 2 如果預設引數是列表 def test l end print l test 1 1,1 test 2 2,2 輸出 1...