JavaScript基礎知識-(詞法,類型)

1,JavaScript的引入

  JavaScript賦予網頁靈魂,讓頁面能夠動起來,更增長了與用戶的交互,使用起來的也比較方便javascript

<head>
	<script type="text/javascript">
    	// javascript 代碼
	</script>
</head>
複製代碼

或者在body的結尾引入java

<body>
	<script src="" type="text/javascript" charset="utf-8"></script>
</body>
複製代碼

JS放在head和放在body中的區別
1,JS若是放在head中,則先被解析,但這個時候body尚未解析,DOM節點尚未生成,因此會返回空值 undefind。解決的辦法windows

windows.onload = function() {
  // JS代碼
}
複製代碼

因此:放在head中的JS代碼會在頁面加載完以前就被讀取了,而放在body結尾的代碼,會在整個頁面加載完以後被讀取。
JavaScript應該放在哪裏?有時候咱們想讓一段腳本在頁面加載的時候優先執行,有時候咱們想在用戶觸發一個事件的時候執行,因此,具體放在哪裏,因需求而定。數組

2,詞法結構

(1) JavaScript是區分大小寫的,因此聲明變量的時候要注意。HTML是不區分大小寫的
(2) JavaScript註釋方法:單行註釋:// 多行註釋:/**...*/ 多行註釋不能嵌套多行註釋
(3) JavaScript沒有強制要求使用分號,由於在解析的時候,除了分號還會以換行做爲斷句的依據,從而會幫你填補分號。我的建議:爲了加強代碼可讀性,減小歧義,我的意見是在語句結束的地方,加上分號。
(4)JavaScript標識符第一個字符必須是字母,下劃線,或者美圓符號,切記,數字是不容許做爲首字符出現的,並且變量名中不能出現空格,或者標點符號 (5)在JavaScript裏面具備某種特殊意義的單詞叫作關鍵字,可能未來做爲關鍵字的叫作保留字。這些單詞是不容許做爲聲明的變量使用的
關鍵字 && 保留字bash

abstract double goto native static
boolean enum implements package super
byte export private synchronized import
char extends int protected throws
class final interface public transient
const float long short volatile
break do case else void
continue for switch while debugger
if throw delete in try
var function new return default
let yield arguments true this

3,類型

JavaScript的6中數據類型,可分爲兩類:原始類型對象類型
原始類型:number,string, boolean, null, undefined
對象類型:object( 包含Function, Array, Date, RegExp,Error ... 等等),
符合(symbol) ES6新增類型
能夠用typeof運算符來查看值的類型函數

<script type="text/javascript">
	console.log(typeof undefined === 'undefined')
	console.log(typeof true === 'boolean')
	console.log(typeof 100 === 'number')
	console.log(typeof 'abc' === 'string')
	console.log(typeof {} === 'object')
	console.log(typeof function a(){} === 'function')
	console.log(typeof null === 'object') // 特別注意,存在已久的bug
	console.log(typeof Symbol() === 'symbol')
	// 平常開發判斷null方法
	var str = null;
	console.log(!str && typeof str === 'object')
</script>
複製代碼

上述代碼結果返回都是true值ui

4,表達式和運算符

(1)&& ,& 第一個和第二個都爲true,則返回true
(2)|| ,| 只要有一個爲真值就返回真,全假返回false
(3)a++ 先使用a值,而後加1, ++a 先加1,而後使用a值 (b--和--b同理)
(4)= 稱做賦值 == 稱做相等 === 稱做嚴格相等this

1,若是兩個值類型不相同,則他們不相等
    2,若是兩個值都是null,undefined,則他們不相等  
    3,若是兩個值都是false,true,則他們相等    
    4,若是任何一個值爲NaN,或者兩個都爲NaN,則不相等
    5,若是兩個引用值指向同一個對象,數組或者函數,則相等
複製代碼

(5)in運算符,左邊操做數是一個字符串,右側是一個對象,若是右邊對象裏面含有左邊操做數的值,那麼表達式返回true
(6)instanceof運算符,左側爲一個對象,右側表示對象的類,若是左側對象是右側類的實例,返回true。注意:全部的對象都是Object的實例spa

相關文章
相關標籤/搜索