var let const 區(qū)別和用法 既然JS的var是失誤,為什么不修改或刪除var,反而引進了let和const?
既然JS的var是失誤,為什么不修改或刪除var,反而引進了let和const?軟件需要向前兼容,這是最基本的。你只要刪除它。目前,網(wǎng)站和代碼都是錯誤的。*getFistName()const語句中最
既然JS的var是失誤,為什么不修改或刪除var,反而引進了let和const?
軟件需要向前兼容,這是最基本的。你只要刪除它。目前,網(wǎng)站和代碼都是錯誤的。
*getFistName()const語句中最后一個const有什么意義?
第一個常量表示如果函數(shù)的返回值不為空,則不允許修改其點。其次,const通常用于類的成員函數(shù)聲明和實現(xiàn)。這意味著在類的實現(xiàn)中不能修改類的數(shù)據(jù)成員。例如,類test{public:const char*getfirstname()const private:int num char name[40]}class:const char*test::getfirstname()const{num=4 strcpy(name,“Hello”)//的實現(xiàn)在這兩個地方修改了類的數(shù)據(jù)成員。由于第二個常量的限制,將發(fā)生編譯錯誤
return name}的優(yōu)點是限制了不需要修改類數(shù)據(jù)成員的函數(shù),這樣可以避免許多錯誤。
能介紹一下const的所有用法?
Const keyword至少有以下n個函數(shù):
](1)要防止變量更改,可以使用Const keyword。定義const變量時,通常需要對其進行初始化,因為以后沒有機會更改它;
(2)對于指針,可以指定指針本身是const,指針引用的數(shù)據(jù)是const,或者兩者都是const;
(3)在函數(shù)聲明中,const可以修改形式參數(shù)表示它是一個輸出輸入?yún)?shù),其值在函數(shù)內(nèi)不能更改;
(4)對于類的成員函數(shù),如果指定為常量類型,則表示它是常量函數(shù),并且不能修改類的成員變量;
(5)對于類的成員函數(shù),有時它的返回值必須指定為const type,這樣它的返回值就不是“l(fā)eft value”。例如,
constclassaoperator*(constclassa& A1,constclassa& A2)
operator*的返回結果必須是const對象。否則,這種異常代碼就不會編譯錯:
classaa,B,C
](a*B)=C//賦值給a*B的結果
運算(a*B)=C顯然不符合程序員的初衷,也沒有任何意義。