你好,朋友。
歡迎進入js基礎引導——變數
經過了前段時間的js基礎引導,算是讓完完全全的小白有了比較不夯實的基礎。後續配合學校課程講到的時候進行再次鞏固,便於更好的理解。接下來涉及到的知識,個人認為是比前段時間更高階一點點點點的基礎知識。寫在這裡,一方面是給各位乙個引導,另一方面也是為了自省。各位,共勉。
基本型別和引用型別的值
js變數可能包換兩種不同型別的值:基本型別值和引用型別值。
基本型別值:簡單的資料段,比如前面提到的五個基本型別。
引用型別值:可能由多個值構成的物件,比如唯一的複雜型別——object物件。
複製變數值
在複製變數的時候,基本型別和引用型別是有很大區別的。
對於基本型別來說:他的複製是重新建立乙個物件,然後讓這個變數的值和被複製的值相同。
對於引用型別來說:他的複製是建立乙個指標型別的副本。
通俗點來說:
假設被複製的變數是乙個冰箱a,那麼基本型別的複製就是又買了乙個一模一樣的冰箱b,引用型別的複製就是給冰箱a新取了乙個名字冰箱c。看起來冰箱a和冰箱c不一樣,實際上這兩個代表同乙個冰箱a。使用當你往冰箱c放東西的話,從冰箱a也可以取出來。
傳遞引數
在傳遞引數的時候,會涉及到乙個名詞叫做區域性變數。
區域性變數:即命名引數,或者說,就是你定義方法時先括號裡面的arg1。
區域性變數的作用效果和存在時間都只在方法內有效,當執行完方法之後,立刻被銷毀。
對於基本型別:在經過方法的修改之後,不會對原變數的數值產生任何問題。
如下:
function
addten
(num)
var count =20;
var result =
addten
(count)
;alert
(count)
;//20,沒有變化。
alert
(result)
;// 30
可以看出,count不會進行任何改變,而返回值需要你定義另乙個變數(如上面的result)來接收。
對於引用變數:經過方法的修改之後,會對原變數的數值產生影響。(上面的冰箱理論)
如下:
function
setname
(obj)
var person =
newobject()
;setname
(person)
;alert
(person.name)
;//"nicholas"
可以看出,當進行修改之後,原變數就會進行變動,因為obj實際上是乙個指標。
對於指標來說,他指向的時同乙個物件。所以修改了就是修改了。
MySQL系列一 前言
mysql大體來講分為兩部分 service層,儲存引擎層 1 service層 查詢快取 命中則直接返回結果,以key value形式存放在記憶體中,如果表 現更新操作,則快取全部失效,在mysql8.0版本之後已經去掉這個模組 分析器 詞法,語法分析,檢查你的sql是否有一場 優化器 執行計畫生...
演算法一(前言 動態規劃)
演算法有什麼作用呢,在我的理解來看 演算法可以鍛鍊自己的邏輯思維能力,問題解決能力,在特定的應用場合能夠更快更好的確定計算方法,當然,在程式設計中,有各種各樣需要解決的問題,演算法是定的,人是活的,精通演算法更多的是在思維上對人的幫助。最後 不懂演算法的程式設計師不是合格的程式設計師 今天去面試,出...
軟體工程(一) 前言
筆者正在學習 軟體工程 實踐者的研究方法 這本書,記錄下一些讀書筆記,共勉!軟體開發時間長 開發成本高 軟體交付客戶前,無法找到所有錯誤 維護已有程式花費較高的時間和人力代價 軟體開發和維護過程難以度量。1 指令的集合,通過執行這些指令可以滿足預期的特徵 功能和效能需求 2 資料結構,使得程式可以合...