js關於變數宣告 var let const 區別

2021-08-29 07:30:39 字數 1222 閱讀 9040

關於定義(宣告)變數

es6之前定義變數是用 var ,那麼var有什麼問題嗎,如果但但從變數上來說是沒有問題的,var是variable的縮寫,英文翻譯是變數。

var問題:

1.汙染全域性

之前定義迴圈的方式:

for(var i=0; i<10; i++)

alert(i);

有一天突然運營檔案,這個時候彈出的是 10 ,這個時候發現有問題。因為定義的i是乙個全域性變數,也就是說在之前的版本會有作用域問題,乙個是全域性作用域,乙個是函式(區域性)作用域;

2.預解析問題(變數提示)

var a = 'hello'; 

function fn()

fn();

其實上面的這段**就等於是下面的這段**,所以執行函式fn()的時候會報錯,undefiend.

var a = 'hello'; 

function fn()

fn();

在es6中首先引出乙個概念就是塊級作用域,在es6中有2中新的定義變數,一種是let,一種是const;

let就跟之前var的用法一樣,const是定義常量的;

let相比var的好處:

1.具備塊級作用域:

見到let就是塊級作用域,在什麼地方定義就只能在什麼地方使用;

2.沒有預解析

3.同乙個作用域不能重複定義,只能重新賦值

4.for迴圈,for迴圈裡面是類似父級作用域,花括號裡面又是乙個作用域,比如

for(let a = 0; a<3; a++)
const定義的變數是常量,不能修改,常用在以下地方:就是不讓別人動你的**的時候,還常常用在定義host,賬號,密碼等

const ora = require('ora')

const rm = require('rimraf')

const path = require('path')

const chalk = require('chalk')

const webpack = require('webpack')

const config = require('../config')

const webpackconfig = require('./webpack.prod.conf')

js變數宣告

var a 向系統要個空間 var 是個關鍵字,變數宣告只有var var a 10 這裡發生兩個過程,乙個是向系統要個空間,另乙個是把10放進房間。並且先發生第一步。var a 10 a 20 20的值把10的值覆蓋 var a,b,c,e 可以同時宣告多個變數,中間以,號 程式設計都是英文狀態 ...

js變數宣告方式

var 關鍵字 作用 宣告變數 student是變數名 自定義的,起名規範 運算符號 rhj 資料 資料代表頁面中所有的資訊 變數的作用 儲存資料 變數可以儲存js的任意資料型別 變數資料可以改變,名字不可變 乙個var宣告乙個變數,幾個var幾個變數 var student rhj 建立變數時,可...

JS變數宣告提公升

js的變數作用域是離它最近的封閉語塊或 塊,包含他們內部的函式.在 塊中宣告會被隱式的提公升到封閉函式的頂部 1 function 6 var y 1 7 上面的 會被js解釋成下面的格式 1 function 8 有時候我們會不小心的在函式內部重新宣告了已有的變數 function text x ...