JavaScript 第二課 JavaScript語法

本章內容:
  • 語句
  • 變量和數組
  • 操作符
  • 條件語句和循環語句
  • 函數與對象

-------------------------------------------------------------

準備:

編寫JavaScript腳本只需要一個普通地文本編輯器和一個Web瀏覽器就足啦。

用JavaScript編寫的代碼必須通過HTML/XHTML文檔才能執行,有兩種方式可以做到這點。

1、第一種是將JavaScript代碼放到文旦<head>標簽中的<script>標簽之間:

<!DOCTYPE html>
<html lang = "en">
<head><meta charset = "utf-8"/><title>example</title><script>JavaScript goes here</script>
</head>
<body>Mark-up goes here...
</body></html>

2、一種更好的方式是將JavaScript代碼存為一個擴展名為.js的獨立文件。典型的做法是在文檔的<head>部分放一個<script>標簽

并把它的src屬性指向該文件:

<!DOCTYPE html>
<html lang = "en">
<head><meta charset = "utf-8"/><title>example</title><script src = "file.js"></script>
</head>
<body>Mark-up goes here...
</body></html>

3、但是最好的做法是把<script>標簽放在HTML文檔的最后,</body>標簽之前:

<!DOCTYPE html>
<html lang = "en">
<head><meta charset = "utf-8"/><title>example</title></head>
<body>Mark-up goes here...<script src = "file.js"></script>
</body></html>
這樣可以更快的加載頁面。why?

程序設計語言分為:解釋型和編譯型兩大類。

java或c++等語言需要一個編譯器(compile)。編譯器是一種程序,能夠把用Java等高級語言編寫出來的源代碼翻譯為直接在計算機上執行的文件。

解釋型程序設計語言不需要編譯器----它們僅需要解釋器。對于JavaScript語言,在互聯網環境下,Web瀏覽器負責完成有關的解釋和執行工作。瀏覽器中的JavaScript解釋器將直接讀入源代碼并執行。瀏覽器中如果沒有解釋器,JavaScript代碼就無法執行。

編譯型程序設計語言(Java、c)解釋性程序設計語言(JavaScript、Python)
需要編譯器(Compiler)編譯器是一種程序,能夠把用Java等高級語言編寫出來的源代碼翻譯為直接在計算機上執行的文件。不需要編譯器,僅需要解釋器,Web瀏覽器負責完成有關的解釋和執行工作。瀏覽器中的JavaScript解釋器將直接讀入源代碼并執行。
在代碼編譯階段可以發現錯誤等到解釋器執行到有關代碼時才發現
速度快,可移植性好?
??

在語法方面,JavaScript與Java和C++極為相似。

注釋:在HTML文檔中,使用<!-這是JavaScript中的注釋->方式來進行注釋。在JavaScript使用//或/* */進行注釋。

變量:提前聲明變量是一種良好的編程習慣。例如:var mood;? (var 是一個關鍵字)

變量名的要求:區分大小寫,不允許包含空格或標點符號(美元符號"$"除外)。允許包含字母、數字、美元符號和下劃線(但第一個數字不允許是數字)。可采取駝峰式命名法(camel case)。

數據類型:

必須明確數據類型聲明的語言稱為強類型(strong typed)語言。JavaScript不需要進行類型聲明,因此他是一種弱類型(weakly typed) 語言。這意味我們可以在任何階段改變變量的數據類型。就是說對于一個變量,JavasScript并不在意它是一個字符串還是一個數或是一個布爾值。

JavaScript數據類型分為:字符串、數值、布爾值

1、字符串:包含零個或多個字符組成,字符包括(不限于)字母、數字、標點符號和空格。字符串必須包在引號里,可以是單引號或是雙引號,期間可能會使用到轉義字符(反斜線\),反斜線并不是字符串的一部分。一個好的編程習慣是使用雙引號來保住字符串。

2、數值:浮點、整數、負數、、

3、布爾值:兩個可選值、true或者是false。

從某種意義上將,計算機設計程序就是與布爾值打交道,所有的電子電路只能識別和使用布爾數據:電路中有還是沒有電流。

布爾值不是字符串。

數組:


字符串、數值還是布爾值都是標量(scalar),如果某個變量是標量,它在任意時刻就只能有一個值。

數組可以用一個變量來存儲一組值,在JavaScript中,數組可以用關鍵字Array聲明。聲明數組的同時可以指定數組的長度(length)例如:var beatles = Array(4);

另外也可以不聲明數組的長度,例如:var? beatles = Array();

我們甚至用不著明確我們是在創建數組。例如: var beatles = ["John","Paul","George",“Ringo”];


對象

數組是使用一個名字表示一組值,對象的每個值都是對象的屬性。例如:

var lennon = Object();

lennon.name = "Jonh";

lennon.year = "1940";

lennon.living = "false";

創建對象使用Object關鍵字。它不使用方括號和下標來獲取元素,而是像任何JavaScript對象一樣,使用點號來獲取屬性。

創建對象還有更簡潔的語法:就是花括號語法:

{propertyName:value,prpertyName:value}

lennon對象也可以寫成下面這樣: var lennon = {name:"John",living:false};

對象是一種非常重要的數據類型,對象是自包含的數據集合,包含在對象里的數據通過兩種形式訪問:屬性(property)和方法(method):

屬性就是隸屬于某個特定對象才能調用的變量;

方法是只有某個特定對象才能調用的函數。對象就是由一些屬性和方法組合在一起而構成的一個數據實體。

在JavaScript里,屬性和方法都使用“點”語法來訪問:

Object.property

Object.method()

JavaScript中提供了一系列預先定義好的對象,這些可以拿來用的對象就稱為內建對象(native object)。

數組就是一個內建對象,當我們使用new關鍵字去初始化一個數組時,其實就是在創建一個Array對象的新實例:

var beatles = new Array();

我們可以使用Array對象的length屬性來獲得數組的長度:beatles.length;

Array對象只是諸多JavaScript內建對象的一種,其他例子包括Math對象和Date對象,它們分別提供了非常有用的方法供人們處理數值和日期值,例如:Math對象的round方法可以把十進制數值舍入為一個與之最接近的整數:

var num = 7.561;

var num = Math.round(num);

alert(num);

Data對象可以用來存儲和檢索于特定日期和時間有關的信息。創建Date對象的新實例時,JavaScript解釋器將自動地使用當前日期和時間對它進行初始化:

var current_data = new Date();

Date對象提供了getDay()、gethHours()、getMonth()等一系列方法;以供人們用來檢索于特定日期有關的信息。例如:

getDay()方法可以告訴我們給定日期是星期幾:

var today = current_data.getDay();

宿主對象

除了內建對象,還可以在JavaScript腳本里使用一些已經預先定義好的其他對象。這些對象不是由JavaScript語言本身而是由它的運行環境提供的。具體到Web應用,這個環境就是瀏覽器。由瀏覽器提供的預定義對象稱為宿主對象(host object)

宿主對象包括Form、Image和Element 等。我們可以通過這些對象去獲取網頁上表單、圖像和各種表單元素等信息。

另一種宿主對象也是用來獲得網頁上的任何一個元素的信息,就是document對象。







本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/274084.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/274084.shtml
英文地址,請注明出處:http://en.pswp.cn/news/274084.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

和菜鳥一起學linux之DBUS基礎學習記錄

轉自&#xff1a;http://blog.csdn.net/eastmoon502136/article/details/10044993 D-Bus三層架構 D-Bus是一個為應用程序間通信的消息總線系統, 用于進程之間的通信。它是個3層架構的IPC 系統&#xff0c;包括&#xff1a; 1、函數庫libdbus &#xff0c;用于兩個應用程序互…

Android 第二十課 廣播機制(大喇叭)----發送自定義廣播(包括發送標準廣播和發送有序廣播)

廣播分為兩種類型&#xff1a;標準廣播和有序廣播 我們來看一下具體這兩者的具體區別&#xff1a; 1、發送標準廣播 我們需要先定義一個廣播接收器來準備接收此廣播才行&#xff0c;否則也是白發。 新建一個MyBroadcastReceiver,代碼如下&#xff1a; package com.example.broa…

八大排序算法

概述 排序有內部排序和外部排序&#xff0c;內部排序是數據記錄在內存中進行排序&#xff0c;而外部排序是因排序的數據很大&#xff0c;一次不能容納全部的排序記錄&#xff0c;在排序過程中需要訪問外存。 我們這里說說八大排序就是內部排序。 當n較大&#xff0c;則應采用…

需求?

1 需求怎樣描述清楚&#xff1f; 利用用例技術&#xff0c;一般這里指的是系統用例&#xff1b;包括以下幾個內容&#xff1a; 用例視圖 系統的功能描述&#xff1b; 用例規約 規定了用戶和系統的交互過程&#xff1b;用戶如何使用系統&#xff1b;用戶如何交互&#xff0c;以及…

Android 第二十一課 RecyclerView簡單的應用之編寫“精美”的聊天頁面

1、由于我們會使用到RecyclerView&#xff0c;因此首先需要在app/build.gradle當中添加依賴庫。如下&#xff1a; apply plugin: com.android.application .... dependencies {....compile com.android.support:recyclerview-v7:26.1.0 } 2、然后開始編寫主頁面&#xff0c;修該…

VS 2008 生成操作中各個選項的差別

近日&#xff0c;在編譯C#項目時經常發現有些時候明明代碼沒錯&#xff0c;但就是編譯不過&#xff0c;只有選擇重新編譯或者清理再編譯才會不出錯&#xff0c;本著求學的態度&#xff0c;搜羅了下VS2008IDE中生成操作的種類以及差別&#xff0c;整理如下&#xff1a;內容(Cont…

dbus-python指南

菜鳥學dbus-python&#xff0c;翻譯dbus-python指南&#xff0c;錯誤之處請在所難免&#xff0c;請諸位不吝賜教&#xff0c;多多指正&#xff01;查看英文原版請點這里。 連接總線Connecting to the Bus方法調用Making method calls代理對象proxy objects接口和方法Interfaces…

JavaScript 第三課 DOM

主要內容&#xff1a; 節點5個常用的DOM方法&#xff1a;getElementById、getElementByTagname、getElementByClassName、getAttribute和setAttribute詳細內容: 1、文檔&#xff1a;DOM中的“D”如果沒有document(文檔),DOM也就無從談起。當創建了一個網頁并把它加載到Web瀏覽器…

源碼編譯安裝Nginx

1.源碼下載 Nginx在github上有一個只讀源碼庫&#xff0c;我獲取的源碼方式為&#xff1a; git clone https://github.com/nginx/nginx.git 2.configure 我下載源碼的時候&#xff0c;github上的源碼的目錄結構為: auto, conf, contrib, docs, misc, src共6個目錄。src目錄是…

SOAP協議初級指南(2)

目前的技術存在的問題&#xff1f;   盡管DCOM和IIOP都是固定的協議&#xff0c;業界還沒有完全轉向其中任何一個協議。沒有融合的部分原因是文化的問題所致。而且在當一些組織試圖標準化一個或另一個協議的時候&#xff0c;兩個協議的技術適用性就被提出質疑。傳統上認為DC…

JavaScript 第四課 案例研究:JavaScript圖片庫

主要內容&#xff1a;編寫一個優秀的標記文件編寫一個JavaScript函數以顯示用戶想要查看的內容由標記出發函數調用使用幾個新方法擴展這個JavaScript函數 學習過DOM&#xff0c;我們用JavaScript和DOM去建立一個圖片庫。最好的辦法是什么呢&#xff1f; 利用JavaScript來建立圖…

windows下mongodb安裝與使用整理

一、首先安裝mongodb 1.下載地址&#xff1a;http://www.mongodb.org/downloads 2.解壓縮到自己想要安裝的目錄&#xff0c;比如d:\mongodb 3.創建文件夾d:\mongodb\data\db、d:\mongodb\data\log&#xff0c;分別用來安裝db和日志文件&#xff0c;在log文件夾下創建一個日志文…

可變參數列表(va_list,va_arg,va_copy,va_start,va_end)

本文轉自:http://blog.csdn.net/costa100/article/details/5787068 va_list arg_ptr&#xff1a;定義一個指向個數可變的參數列表指針&#xff1b;      va_start(arg_ptr, argN)&#xff1a;使參數列表指針arg_ptr指向函數參數列表中的第一個可選參數&#xff0c;說明&…

src與href屬性的區別

src和href之間存在區別&#xff0c;能混淆使用。src用于替換當前元素&#xff0c;href用于在當前文檔和引用資源之間確立聯系。 src是source的縮寫&#xff0c;指向外部資源的位置&#xff0c;指向的內容將會嵌入到文檔中當前標簽所在位置&#xff1b;在請求src資源時會將其指向…

USACO4.12Beef McNuggets(背包+數論)

昨天晚上寫的一題 結果USACO一直掛中 今天交了下 有一點點的數論知識 背包很好想 就是不好確定上界 官方題解&#xff1a; 這是一個背包問題。一般使用動態規劃求解。 一種具體的實現是&#xff1a;用一個線性表儲存所有的節點是否可以相加得到的狀態&#xff0c;然后每次可以…

Java 循環語句中 break,continue,return有什么區別?

break 結束循環&#xff0c;跳出循環體,進行后面的程序;continue 結束本次循環&#xff0c;進行下次循環;return 跳出循環體所在的方法&#xff0c;相當于結束該方法; 例子&#xff1a; public class whiletrueTest{public static void main(String[] args) {heihei();haha();…

Epoll模型詳解

轉自http://blog.163.com/huchengsz126/blog/static/73483745201181824629285/ Linux 2.6內核中提高網絡I/O性能的新方法-epoll I/O多路復用技術在比較多的TCP網絡服務器中有使用&#xff0c;即比較多的用到select函數。 1、為什么select落后 首先&#xff0c;在Linux內核中…

運算放大器單電源應用中的使用齊納二極管偏置方法

運算放大器單電源應用中的偏置方法除了使用大電阻使運放輸出達到電源電壓的一半外&#xff0c;還有使用齊納二極管&#xff08;穩壓管&#xff09;方法也能得到達到應用目的。 下面就推薦幾個齊納二極管&#xff08;分別對應著電源電壓是15V,12V&#xff0c;9V;5V&#xff09; …

Java——demo之仿ATM操作

java.util.Scanner類&#xff0c;這是一個用于掃描輸入文本的新的實用程序。其中nextInt()獲取String型&#xff0c;而next()獲取int、double型。這是一個仿ATM的小程序。 實現條件 1.登陸界面&#xff0c;2.三次登陸機會&#xff0c;登陸成功進入登陸菜單&#xff0c;3&#x…

dpi 、 dip 、分辨率、屏幕尺寸、px、density 關系以及換算

本文轉自&#xff1a;http://www.cnblogs.com/yaozhongxiao/archive/2014/07/14/3842908.html 一、基本概念 dip &#xff1a; Density independent pixels &#xff0c;設備無關像素。 dp &#xff1a;就是dip px &#xff1a; 像素 dpi &#xf…