關於定義(宣告)變數
es6之前定義變數是用 var ,那麼var有什麼問題嗎,如果但但從變數上來說是沒有問題的,var是variable的縮寫,英文翻譯是變數。
var問題:
1.汙染全域性
之前定義迴圈的方式:
for(var i=0; i<10; i++)
alert(i);
有一天突然運營檔案,這個時候彈出的是 10 ,這個時候發現有問題。因為定義的i是乙個全域性變數,也就是說在之前的版本會有作用域問題,乙個是全域性作用域,乙個是函式(區域性)作用域;
2.預解析問題(變數提示)
其實上面的這段**就等於是下面的這段**,所以執行函式fn()的時候會報錯,undefiend.
var a = 'hello';
function fn()
fn();
在es6中首先引出乙個概念就是塊級作用域,在es6中有2中新的定義變數,一種是let,一種是const;var a = 'hello';
function fn()
fn();
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 ...