Js基礎高階(一) 前言,變數

2021-09-25 09:37:42 字數 1517 閱讀 7240

你好,朋友。

歡迎進入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 資料結構,使得程式可以合...