1. 程式人生 > >數據類型核心操作步驟和原理

數據類型核心操作步驟和原理

-s mat 遇到 ice 一次 瀏覽器中 面向 bsp eva

數據類型核心操作步驟和原理

JS中的數據類型

  • 基本數據類型(值類型)
    • number
    • string
    • boolean
    • null
    • undefined
  • 引用數據類型
    • 對象
      • {}普通對象
      • []數組
      • /^$/正則
      • Math 對象數據類型的
      • 。。。
    • 函數
      • function 普通函數
      • 。。。
JS代碼運行在瀏覽器中,是因為瀏覽器給我們提供了一個供js代碼執行的環境 -> 全局作用域(window/global)
var a=12;
var b=a;
b=13;
console.log(a);
var o={name:"helloworld"};
var p=o; p.name=‘席超‘; console.log(o.name); var m={name:‘helloworld‘}; var n=m; n={name:‘面向對象編程‘}; console.log(m.name); function fn(){ var ary=array.prototype.slice.call(arguments); return eval(ary.join(‘+‘)); } fn();

值類型

直接按值操作,例如:var a=12;直接把12這個值賦值給變量a (讓a變量和12這個值建立了連接的關系)

對象數據類型

在JS中遇到對象,會嚴格按照如下的步驟操作: 1、瀏覽器為其開辟一個新的內存空間,為了方便後期可以找到這個空間,瀏覽器給空間分配一個16進制的地址
2、按照一定順序,分別的把對象鍵值對存儲到內存空間中 3、把開辟內存的地址賦值給變量(或者其他的東西),以後變量就可以通過地址找到內存空間,然後進行一些操作

函數的操作

創建函數

1、先開辟一個新的內存空間(為其分配了一個16進制的地址) 2、把函數體中編寫的js代碼當做字符串存儲到空間中(函數只創建不執行沒有意義) 3、把分配的地址賦值給聲明的函數名(function fn和var fn操作原理其實相同,都是在當前作用域中聲明了一個名字,此處兩個名字是重復的) 執行函數

目的:執行函數體中 的代碼

1、函數執行的時候,瀏覽器會形成一個新的私有作用域(只能執行函數體中的代碼)供函數體重代碼執行
2、執行代碼之前,先把創建函數存儲的那些字符串變為真正的js表達式,按照從上到下的順序在私有作用域中執行 一個函數可以被執行N次,每一次執行相互之間互不幹擾(後面會學習兩者之間建立的間接關系) 形成的私有作用域把函數體中的私有變量等都包裹起來了(保護起來了),在私有作用域中操作私有變量和外界沒關系,外界也無法直接的操作私有變量,我們把函數執行形成的這種保護機制叫做閉包 * 學習:知其然而知其所以然*

數據類型核心操作步驟和原理