1. 程式人生 > >JS中宣告變數的三種方式 const var let

JS中宣告變數的三種方式 const var let

JavaScript中有三種宣告變數的方式:const  var let。

  • const:用於宣告常量。注意:定義的變數的時候,必須同時初始化,且其值之後不可以修改。 
    		const PI=3.14;
    		// const a;//報錯。沒有賦初值。
    		console.log('const PI:',PI);//輸出
    		// PI = 3.1415926;//報錯。不能賦值給一個常量。


  • var:最常用的宣告變數關鍵字。 定義的變數的時候,若沒有初始化,不報錯,會輸出undefined。其值之後可以修改。
    var可以用來宣告全域性變數,也可以宣告區域性變數,依據它們宣告的位置:

  1.  全域性變數:在函式外定義的變數;(注意:若沒有使用關鍵字宣告的變數,預設為全域性變數。)作用域是整個程式碼檔案。
  2.  區域性變數:在函式內定義的變數。作用域是當前的函式內部。
                var b ;//不報錯。
		console.log('var b:',b);//輸出undefined
		b = 1 ;//賦初值
		console.log('var b,外部賦值1:',b);//輸出1

		//在程式碼塊裡的情況
		{
			// console.log('var b,程式碼塊的變數可以進入程式碼塊內:',b);//輸出1
			var b=2;//重新定義
			console.log('var b,重新賦值後:',b);//輸出2
		}
		console.log('var b,重新賦值後在程式碼塊外的值:',b);//輸出2

		//在函式裡的情況
		function varFun(){
			console.log('var b,全域性變數b:',b);//輸出2
			var b=3;//區域性變數b
			console.log('var b,區域性變數b:',b);//輸出3,同時上一個輸出undefined(具體原因,見文末)
			var b2 = 33;//區域性變數b2,在函式外獲取不到值
			b3 = 333;//全域性變數b3,在函式外可以獲取到值

		}
		varFun();//執行函式
		console.log('var b,函式執行後,函式外的b是全域性變數b的值:',b);
		// console.log('函式內var定義的變數b2=33,在外部獲取不到:',b2);//報錯,b2 為定義。
		console.log('函式內確實關鍵字定義的變數b3=333,會被當做全域性變數:',b3);//輸出333
  • let塊級作用域 。在塊級{}裡面用let定義的變數,離開當前的塊{}之後,就不能使用(有點像區域性變數,但作用域不一樣)。
    注意:{...}一對花括弧就就是一個特定的程式碼塊,包括直接的{},流程語句的{},函式的{},....。函式宣告時本身就帶有{},也是屬於一個程式碼塊。

    	        var c=11;
    		{
    			let c=12;
    			console.log('let c=12,b的值:',c);//輸出12
    		}
    			console.log('程式碼塊外c的值:',c);//輸出11

相關推薦

JS宣告變數方式 const var let

在JavaScript中有三種宣告變數的方式:const  var let。 const:用於宣告常量。注意:定義的變數的時候,必須同時初始化,且其值之後不可以修改。  const PI=3.14; // const a;//報錯。沒有賦初值。 console.

js函式的定義方式、函式宣告、函式同名重複、函式刪除、

全棧工程師開發手冊 (作者:欒鵬) 在js中,函式本身屬於物件的一種,因此可以定義、賦值,作為物件的屬性或者成為其他函式的引數。函式名只是函式這個物件類的引用。 一、函式定義 【1】函式宣告語句 使用function關鍵字,後跟一組引數以及函

1在html添加js代碼的方式

abc cti 浮點 fine 時間 4.0 完成 span 作用域 1.第一種方式:在時間句柄後太假js代碼; 例如瀏覽器彈出對話框; 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//

Struts2學習(二)運行Action方法的方式

tracking 利用 content con return -m i++ var itl 1.運行execute()方法 一般的能夠直接在action中書寫execute,調用action時會自己主動運行此方法 2.配置method方法 在s

JS 定義方法的方式

JS函式的定義與呼叫方法 JS函式呼叫的四種方法:方法呼叫模式,函式呼叫模式,構造器呼叫模式,apply,call呼叫模式 1.方法呼叫模式: 先定義一個物件,然後在物件的屬性中定義方法,通過myobject.property來執行方法,this即指當前的myobject 

JS資料交換的方式

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script> //第一個思

JS物件宣告的幾方式

-- 新手向知識,就不用ES6寫法了。 一、字面量宣告 var obj = { 屬性名1 : 屬性值, 屬性名2 : 屬性值, 屬性名3 : 屬性值, 方法名1 : function() {

js總結(四)--JS 定義方法的方式

來自:https://blog.csdn.net/u014338577/article/details/77775371     JS函式呼叫的四種方法:方法呼叫模式,函式呼叫模式,構造器呼叫模式,apply,call呼叫模式 1.方法呼叫模式: 先定義一個物

JS建立物件的方式和閉包的兩常用場景

物件建立的三種方式 ①通過new關鍵字建立物件 var obj = new Object(); obj.name = 'daxue'; obj.age = 28; obj.fun = function(){ } alert(obj.age); ②簡單字面量

JavaScript 函式宣告方式

demo.html:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title>

JS非同步載入的方式

非同步載入又叫非阻塞載入,瀏覽器在下載執行js的同時,還會繼續進行後續頁面的處理。主要有三種方式。 方法一:也叫Script DOM Element (function(){ var scriptEle = document.createElement("script"); script

JavaScript面向物件()——繼承與閉包、JS實現繼承的方式

  前  言 JRedu 在之前的兩篇部落格中,我們詳細探討了JavaScript OOP中的各種知識點(JS OOP基礎與JS 中This指向詳解 、 成員屬性、靜態屬性、原型屬性與JS原型鏈)。今天我們來繼續探討剩餘的內容吧。  我們都知道,面向物件的三大特徵——封裝、繼承、多型。 封裝無非就是屬性和

js 物件克隆的方式

js 物件克隆 把原來物件的屬性遍歷一遍,賦給一個新的物件 //深複製物件方法 var cloneObj = function (obj) { var newObj

js 建立物件的方式 及獲取屬性新增屬性的方法

1:直接量法 var obj = { } ;//這是一個空物件 var point = {x:0,y=0}; //point物件有兩個屬性 x 和 y 2.通過new 建立物件 var

Javaweb專案引入js檔案路徑的方式

1、直接引用: 根據專案的目錄結構。我的專案目錄結構如圖: 引用方式為: <script type="text/javascript" src="js/jquery-3.0.0.mi

js宣告函式的方式

1).函式宣告方式     function sum(){};呼叫:sum()2).函式表示式宣告方式    var add=function(){};呼叫:add()3)使用Function建構函式var add2=new Function();呼叫 :add2()

JS事件綁定的方式

events load textarea sch 事件 ron 事件綁定 upload fun 以下是搜集的在JS中事件綁定的三種方式。 1. HTML onclick attribute <button type="button" id="upload"

JS註冊事件的方式及相容性處理

第一種(所有瀏覽器都支援,但是無法給同一個物件的同一個事件註冊多個事件處理函式) btn.onclick = function() { alert("111") } btn.onclick = function() {

前端知識小節--js改變this指向的方式

在寫程式碼完成專案的過程中我們經常會遇到需要改變this指向來實現功能的時候,以下三種方式是常用的改變this指向的方法: 1.call call中的引數有多個,如: aa.call(obj,num1,num2); obj是函式執行的作用域,num1,num2是要給函式傳的

方式格式化時間(JS函式、HTMLEL表示式、Java程式碼

1:單純是從HTML中格式化時間,使用 <fmt:formatDatevalue="${templateUnit.creTime}" pattern="yyyy-MM-dd"/> 如果需