變數和常量
js中使用const宣告乙個常量
constpi=
3.14
使用var 和 let宣告變數
var a =1;
let b =
2;
那麼使用let和var宣告變數有什麼區別呢?
js中的this
先來看乙個物件中的乙個方法:
var xiaoming =};
xiaoming.
age();
// 25
在乙個方法內部,this是乙個特殊變數,它始終指向當前物件。現在我們將上邊的方法單獨拎出來,作為乙個函式。
function
getage()
var xiaoming =
;xiaoming.age;
// nan
納尼?發生了什麼?分析帝分析一波:
首先呼叫乙個函式,只是獲取這個函式的返回值,函式體內部的實現並不能在呼叫的地方體現。所以,在xiaoming這個物件呼叫getage()的方法的時候,getage()方法裡面的this並不是指向xiaoming這個物件,而是全域性window。所以執行結果並不能獲取我們想要的。js為了讓這個誤區顯露出來,嚴格模式下執行,會直接提示乙個錯誤。
'use strict'
;function
getage()
var xiaoming =
;xiaoming.age;
// uncaught typeerror: cannot read property 'birth' of undefined
嚴格模式下,全域性函式中的this指向了undefined,不使用嚴格模式,則會指向window
講函式的時候,我們提到,如果不加() ,我們會獲取這個函式的函式體。如果不加(),可不可以得到我們想要的結果呢?
function
getage()
var xiaoming =
;xiaoming.
age();
// 25
事實證明可以。
但是如果,這個函式是物件內部方法之中定義的呢,會發生什麼?
'use strict'
var xiaoming =}}
;xiaoming.
age();
// uncaught typeerror: cannot read property 'birth' of undefined
無情報錯。
有沒有解決辦法呢?我們嘗試用別的變數代替this。
var xiaoming =}}
;xiaoming.
age();
// 25
我們用that先獲取this,這個節點this指向的是xiaoming物件,所以避免了在函式內部this指向錯誤的問題。
'use strict'
var xiaoming =
return getage.
(xiaoming,
);}}
;xiaoming.
age();
// 25
'use strict'
;var count =0;
var oldparseint = parseint;
// 儲存原函式
window.
parseint
=function()
;
箭頭函式
箭頭函式相當於簡寫的匿名函式。
// 單引數
x => x * x
// 多引數
(x, y)
=> x * x + y * y
// 空引數()
=>
newdate()
.getfullyear()
// 因為花括號在js中的特殊性,返回物件需要用()包起來
x =>()
// 將箭頭函式賦值給變數
varfunc
=(x, y)
=> x * x + y * y
箭頭函式中的this總是指向詞法作用域,解決了this的指向問題。
var xiaoming =};
xiaoming .
age();
// 25
JS中函式的基礎知識
函式 一 函式定義 函式又叫方法,在程式裡面函式是用來執行某些特定功能的 為了減少重複使用 可以把特定功能的 做成函式,需要使用時拿出來呼叫。alert 就是乙個很常見的 簡單的函式,重複使用時不需要再寫 了,只是把函式名拿過來用就可以。函式後面都帶 不帶 的一般都是屬性。函式有以下4個特點 1.返...
js基礎中的基礎
昨天看了下js很基礎的東西,這裡大致做了點筆記,想if判斷和迴圈這些就沒有記筆記了,因為感覺都是差不多的。在js中宣告變數和變數的宣告週期 在js中宣告在函式外的變數是全域性變數,也就是在整個程式裡有效,而在函式中宣告的變數是區域性變數,只在此函式中有效,但是還是有一點要注意的就是如果在函式中宣告變...
js中的this基礎
this在js中的地位可以說是相當高了,本文介紹下this的基本相關情況,以後還會慢慢介紹 在頁面中aler this this的指向是window 在dom操作中this的指向是當前發生事件的物件 window.onload function ali i onmouseout function 但...