JavaScript之基本概念(二)

来源:https://www.cnblogs.com/ruhaoren/archive/2019/08/08/11320439.html
-Advertisement-
Play Games

寫在前面:今天主要介紹兩個東西:JS標識符和數據類型 一 變數和常量 在介紹標識符之前有必要先瞭解一下JS中的變數和常量。 變數:程式執行期間可操作的臨時存儲數據的記憶體空間。 聲明方式: var:函數作用域,變數聲明提前,可重覆聲明,後聲明的覆蓋前面的。 let:塊級作用域,聲明不會提前,不可重覆聲 ...


寫在前面:今天主要介紹兩個東西:JS標識符和數據類型

一  變數和常量

         在介紹標識符之前有必要先瞭解一下JS中的變數和常量。

         變數:程式執行期間可操作的臨時存儲數據的記憶體空間。

    聲明方式:

           var:函數作用域,變數聲明提前,可重覆聲明,後聲明的覆蓋前面的。

           let:塊級作用域,聲明不會提前,不可重覆聲明。

           const:聲明常量,塊級作用域,聲明不會提前,不可重覆聲明,聲明是必須賦值,不可重覆賦值。

         常量:程式運行期間不可改變。

 

二     JavaScript標識符

  含義:JS中的標識符本質上是一個字元串。但字元串未必是標識符。

  作用:標識符是用來給變數函數等命名的。

  規則

         1 、只能由數字、字母、下劃線以及$符號組成。

         2 、不能以數字開頭

         3 、區分大小寫

         4、 使用有具體含義的單詞,動名結合。

         5 、遵循小駝峰命名法,即第一個單詞首字母小寫,其他的首字母大寫。

         6 、不能使用JS保留字和關鍵字。

  JS關鍵字列表如下:

break
case
catch
continue
default
delete
do
else
finally
for
function
if
in
instanceof
new
return
switch
this
throw
try
typeof
var
void
while
with
  JS保留字列表如下:
abstract
boolean
byte
char
class
const
debugger
double
enum
export
extends
final
float
goto
implements
import
int
interface
long
native
package
private
protected
public
short
static
super
synchronized
throws
transient
volatile
         

三   JavaScript數據類型

         1 、分類

  JS中的數據分為兩大類:基本數據類型和複雜數據類型。

       基本數據類型:

                   String(字元串):多個字元的有序序列,並用雙引號或單引號引起來的。

                   Number(數字):JS在聲明數字類型的變數時不區分浮點數和整數。

                   Boolean(布爾):只有兩個值:true或者false。表示真或者假。

                   Undefined(未定義):表示變數未申明。

                   Null(空):變數已聲明,但是其值為Null。

                   Symbol(唯一標識):ES6新增的。

  複雜數據類型:

                   Object(對象):JS中一切皆可看做對象。

       按照數據的存儲方式也可分為兩大類:原始值和引用值。具體其實和上面一樣。

          原始值:存儲在棧(stack)中的簡單數據段,也就是說,它們的值直接存儲在變數訪問的位置。

          引用值:存儲在堆(heap)中的對象,也就是說,存儲在變數處的值是一個指針(point),指向存儲對象的記憶體處。 

      

 

2、 檢測

         JS中檢測數據類型的方法是 typeof。

         使用typeof檢測數據會返回一下7種數據類型,註意,它們都是以字元串的形式返回:

                   ‘’string‘’;

                   ‘’number‘’;

                   ‘’boolean‘’;

                   ‘’undefined‘’;

                   ‘’object‘’;

                   ‘’function‘’;

                   ‘’symbol‘’;

下麵是一些簡單的例子:

 1 typeof "hello";//"string"
 2 typeof 123;//"number"
 3 typeof true;//"boolean"
 4 typeof undefined;//"undefined"
 5 function fn(){}
 6 var obj = new Object();
 7 var syb = new Symbol();
 8 typeof fn;//"function"
 9 typeof obj;//"object"
10 typeof syb;//"symbol"
11 typeof null;//"object",因為null最初被設計是用來當做空對象的占位符的

 

另外,有兩個特別的數字:NaN(not a number不是一個數字)和infinity(無窮)。

NaN需要用Number.isNaN()檢測;如果參數不是數字則返回true,是數字則返回false;

另一個方法Number.isFinite();如果參數是NaN或者infinity則返回false,否則返回true。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 上一篇講了字元串的解析過程,這一篇來講講標識符(IDENTIFIER)的解析。 先上知識點,標識符的掃描分為快解析和慢解析,一旦出現Ascii編碼大於127的字元或者轉義字元,會進入慢解析,略微影響性能,所以最好不要用中文、特殊字元來做變數名(不過現在代碼壓縮後基本不會有這種情況了)。 每一位Jav ...
  • HTML特殊轉義字元列表 最常用的字元實體Character Entities 顯示說明實體名稱實體編號 半方大的空白 &ensp; &#8194; 全方大的空白 &emsp; &#8195; 不斷行的空白格 &nbsp; &#160; < 小於 &lt; &#60; > 大於 &gt; &#62; ...
  • 什麼是組件? 組件的出現,就是為了拆分Vue實例的代碼量的,能夠讓我們以不同的組件,來劃分不同的功能模塊,將來我們需要什麼樣的功能,就可以去調用對應的組件就可以了。 組件化和模塊化的區別 模塊化:是從代碼邏輯的角度進行劃分的,方便代碼分層開發,保證每個模塊功能的職能單一。例如:NodeJS 組件化: ...
  • window.onload=function(){ var a = $("#div").width(),//width()返回元素的寬高,不包括padding/border/margin b = $("#div").innerWidth(),//innerWidth()返回元素的寬高 + paddi ...
  • ajax是非同步請求技術,可以實現頁面的局部刷新。但是今天寫代碼的時候發現每次ajax之後都會發生整個頁面的刷新,最後發現這是因為觸發ajax事件的input標簽的type設置為了submit,所以會產生表單提交操作,使頁面刷新。 將type設置為button後即可正常運行。 ...
  • 這兩天在學習圖片的懶載入實現,看了很多大佬的博客,終於有了點成果。現在用了其中一位大佬的文章中的代碼實現了圖片懶載入並且在其基礎上加入了節流函數。 原理就不多講了,有需要的可以去大佬的文章看看。大佬文章可以從這裡進->(https://www.jianshu.com/p/9b30b03f56c2)。 ...
  • 1和new Number(1)有什麼區別 author: @Tiffanysbear 總結,兩者的區別就是原始類型和包裝對象的區別。 什麼是包裝對象 對象Number、String、Boolean分別對應數字、字元串、布爾值,可以通過這三個對象把原始類型的值變成(包裝成)對象: 我們來看下實際的v1 ...
  • 用webpack打包頁面,發現html中特別寫的用來給後端識別的大寫標簽全部被轉為了小寫標簽,這時候需要將加一個配置 ,caseSensitive:true ,禁止大小寫轉換。 webpack配置: 參考文檔鏈接: https://github.com/kangax/html-minifier#op ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...