js-筆記

不言
不言原創
2018-04-26 14:31:201344瀏覽

這篇文章給大家分享的就是一點js的筆記,有興趣的朋友可以看一下

1、js會進行一次預編譯處理;

var a; 
if (!(“a” in window)) { 
   a = 1; 
}

alert (a); // undefined
這樣,題目的意思就非常清楚了:先宣告a,然後判斷a是否在存在,如果不存在就賦值為1,
很明顯a永遠在window裡存在,這個賦值語   句永遠不會執行,所以結果是undefined。

2、函數宣告會覆寫變數聲明,但不會覆寫變數賦值來看栗子

function value(){ 
   return 1; 
} 
alert(typeof value);    //”function”

盡快變數宣告在下面定義,但是變數value依然是function ,也就是說這種情況下,
函數宣告的優先權高於變數宣告的優先權,但如果該   變數value賦值了,那結果就完全不一樣了:
##

function value(){ 
   return 1; 
} 
var value = 1; 
alert(typeof value);    //”number”

該value賦值以後,變數賦值初始化就覆寫了函數宣告。


淺拷貝只是拷貝了基本類型的數據,對於數組或物件的話,拷貝的只是其記憶體位址,因此存在元物件被篡改的可能;


function copy(p) { 
   let c = {}; 
   for(let i in p) { 
       c[i] = p[i]; 
   } 
   return c; 
}

1、js會進行一次預編譯處理;


var a; 
if (!(“a” in window)) { 
   a = 1; 
} 
alert(a); // undefined

這樣,題目的意思就非常清楚了:先宣告a,然後判斷a是否在存在,如果不存在就賦值為1,

很明顯a永遠在window裡存在,這個賦值語   句永遠不會執行,所以結果是undefined。

2、函數宣告會覆寫變數聲明,但不會覆寫變數賦值來看栗子


function value(){ 
   return 1; 
} 
alert(typeof value);    //”function”

盡快變數宣告在下面定義,但是變數value依然是function ,也就是說這種情況下,

函數宣告的優先權高於變數宣告的優先權,但如果該   變數value賦值了,那結果就完全不一樣了:
##

function value(){ 
   return 1; 
} 
var value = 1; 
alert(typeof value);    //”number”

 

該value賦值以後,變數賦值初始化就覆寫了函數宣告。



淺拷貝只是拷貝了基本類型的數據,對於數組或物件的話,拷貝的只是其記憶體位址,因此存在元物件被篡改的可能;

function copy(p) { 
   let c = {}; 
   for(let i in p) { 
       c[i] = p[i]; 
   } 
   return c; 
}

相關推薦:

js另一種寫法分享

js實作模糊查詢實例詳解

以上是js-筆記的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn