學習javascript——變數與標識符

来源:http://www.cnblogs.com/xiaohuochai/archive/2016/01/03/5096361.html
-Advertisement-
Play Games

[1]變數特性 [2]變數命名 [3]變數聲明 [4]變數賦值 [5]標識符命名 [6]標識符解析


目錄
[1]變數 變數特性 變數命名 變數聲明 變數賦值 [2]標識符 標識符命名 標識符解析

變數

  從字面上看,變數是可變的量從編程角度講,變數是用於存儲數據的容器

變數特性

  javascript中的變數是鬆散類型的,可以保存任何類型的數據。由於不存在定義某個變數必須要保存何種數據類型值的規則,變數的值及其數據類型可以在腳本的生命周期內改變

 

變數命名

  變數可以任意取名,但必須遵循命名規則:

  [1]第一個字元必須是字母、下劃線或美元符號。其他字元可以是字母、下劃線、美元符號或數字

//錯誤示範
  6num  //開頭不能用數字
  %sum //開頭不能用除(_ $)外特殊符號,如(%  + /等)
  sum+num //開頭中間不能使用除(_ $)外特殊符號,如(%  + /等)

  [2]字元中的字母可以包括拓展的ASCII或Unicode字母字元,也可以使用中文

  [3]不能使用關鍵字、保留字、true、false和null

  [4]變數對大小寫敏感

  [5]標識符應採用小駝峰格式,第一位應該是數據的類型,常見的標識如下:

數組       a    Array      aItems
布爾值      b    Boolean     bIsComplete
浮點數      f    Float       fPrice
函數      fn    Function    fnHandler
整數       i    Integer    iItemCount
對象       o    Object     oDIv1
正則表達式    re    RegExp     reEmailCheck
字元串      s    String     sUserName
變數       v    Variant   vAnything    

 

變數聲明

  聲明格式為: var 變數名;

var num;//聲明一個變數
var num1,num2;//聲明多個變數

  用var操作符定義的變數將成為定義該變數的作用域中的局部變數。若省略var操作符,可以創建一個全局變數,但在嚴格模式下會拋出 ReferenceError錯誤

var num1=1;
num2=2;//在嚴格模式下會報錯
num3;//報錯

  如果重新聲明 JavaScript 變數,該變數的值不會丟失

var carname="Volvo";
console.log(carname);//Volvo
var carname;
console.log(carname);//Volvo

 聲明提升

  javascript中的變數聲明會提升到所有函數和語句之前,但提升後的變數將返回undefined,因為只是聲明提升,賦值操作並沒有提升

console.log(myvar); // undefined
var  myvar = "local value";
console.log(myvar); // "local value"

 

變數賦值

  使用"="給變數賦值,也就是存儲內容。變數可以在聲明時賦值,但不能有其他操作,如+=、-=等

var num = 5;
//上下是等價的
var num;
num = 5;
var a = 2;//正確
var a += 2;//錯誤
var a = 2++;//錯誤,++只能用於變數,不能用於常量

 

標識符

  標識符是指變數、函數、屬性的名字,或者函數的參數

 

標識符命名

  命名規則同變數命名規則,對於不符合命名規則的屬性如border-color應寫為大括弧方式[borderColor]

 

標識符解析

  標識符解析是沿著作用域鏈一級一級地搜索標識符的過程。搜索過程始終從作用域鏈的前端開始,然後逐級地向後回溯,直到找到標識符為止

  [1]如果局部環境中存在著同名標識符,就不會使用父環境中的標識符

  [2]如果找不到標識符,表示標識符尚未聲明,通常會導致錯誤發生

  [3]JavaScript引擎在優化標識符查詢方面做得不錯,訪問父環境局部環境的標識符的時間差別可以忽略不計

var num = 1;
function test(){
    num = 2;
    console.log(num);//2
    console.log(number);//報錯
}
test();

 


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

-Advertisement-
Play Games
更多相關文章
  • 在移動頁面的開發中,我們很難像PC端那樣很方便的調試,網上也有各種各樣的調試方式。但在工作中,我主要還是用chorme自帶的模擬器來模擬各種移動設備,但是用久了之後發現畢竟是模擬的,與真機調試還是會有不同的結果。 為了方便開發,UC推出Android平臺UC瀏覽器開發者版,主要支持以下功能:D...
  • [1]定義 [2]引入 [3] [4]註釋 [5]忽略空格 [6]代碼折行 [7]大小寫敏感 [8]保留字和關鍵字
  • 從2012年開始正式接觸jquery-easyui到如今已經整整3個年頭了。由於項目經常需要添加補充功能。工期緊,任務重。對於前端一直 薄弱的我而言,調整樣式往往會花費大量時間。而自從接觸過jquery-easyui,對它就一直愛不釋手。靈活輕便。可以快速實現功能,最煩心的樣式也 都由它來幫我解.....
  • 本篇主要介紹Web環境中屏幕、瀏覽器及頁面的高度、寬度信息。
  • 之前不知道這個參數的作用,上網找了前輩的博客,在此收錄到自己的博客,希望能幫到更多的朋友: test.htmlasy.jsfunction testAsync{ var temp; $.ajax({ async: false, type : "GET", url : 'tet.php', compl...
  • html相關
  • 簡介+hello world程式
  • 1.首先設置body的高度為100%,overflow屬性設為hidden(溢出隱藏)2.body內div寬和高都設為100%,overflow屬性設為hidden ,z-index:-1(確保背景圖片在最下麵)3.設置div內的img寬高都為100%;html 代碼如下: ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...