Js基本概念(一)
1. <script></script>元素應該放在<body>元素內。因為如果在<head>元素內,那麼所有的Js程式碼都要被下載、解析、執行完成後才可以呈現頁面的內容。即瀏覽器遇到<body>標籤。這樣會導致在呈現頁面時出現延遲。所有的<script>元素都會按照他們在頁面中出現的先後順序執行。
2. 延遲指令碼:<script>的defer屬性,只適用於外部指令碼執行。表明指令碼會被延遲到整個頁面都解析完畢之後再執行-----即立即下載,但延遲到瀏覽器遇到</html>標籤後再執行。且第一個延遲指令碼一定會在第二個延遲指令碼之前執行。Html5會忽略defer屬性。
3.非同步指令碼:<script>的async屬性,只適用於外部指令碼的執行。表明指令碼會被延遲到整個頁面都解析完畢之後再執行-----即立即下載,但延遲到瀏覽器遇到</html>標籤後再執行。。但是指令碼並不保證按照他們的指定先後順序執行。
4.XHTML:可擴充套件標記語言(Extensible HyperText Markup Language)程式碼規則比HTML嚴格。比如<號被看成是標籤。解決辦法是:
<script type="text/javascript">
//<![CDATA[ 使用註釋是因為有的瀏覽器不相容XHTML----即不支援CData片段
if(a < b){
alert("A is less than B");
}
//]]>
</script>
4. <noscript>元素
<noscript>
<p>本頁面需要瀏覽器支援(啟用)Javascript。</p>
</noscript>
以上的內容只有在瀏覽器不支援指令碼或者瀏覽器支援指令碼,但指令碼被禁用時顯示。
5. ECMAScript中的一切(變數、函式和操作符)都區分大小寫 駝峰規則
6. 識別符號:指變數、屬性、函式的名字,或者函式的引數。規則如下:
第一個字元必須是一個字母、下劃線(-)或$;
其他字元可以是字母、下劃線、美元符號或數字。
7. 嚴格模式:"user strict"
8. ECMAScript的變數是鬆散型別的即可以用來儲存任何型別的資料。
var message = "rourou";
message = 100; //修改變數值的同時修改值的型別。
9. 區域性變數和全域性變數
var操作符定義的變數(函式中)為定義該變數的作用域中的區域性變數。
省略var操作符定義的變數為全域性變數。
可以使用一條語句定義多個變數,如下:
var message = "rourou",
found = true,
age = 22;