1、javascript
1.1javascript來源
94年網(wǎng)景公司 研發(fā)出世界上第一款瀏覽器。
95年 sun公司 java語言誕生
網(wǎng)景公司和sun合作。
Java+script ===> javascript
1.2、W3c規(guī)范
結(jié)構(gòu)標準 html
表現(xiàn)標準 css
行為標準 js
1.3、javascript和ecmascript的關(guān)系
ECMAScript是一種由Ecma國際前身為歐洲計算機制造商協(xié)會,英文名稱是European Computer Manufacturers Association,制定的標準。
JavaScript是由公司開發(fā)而成的,公司開發(fā)而成的一定是有一些問題,不便于其他的公司拓展和使用。所以歐洲的這個ECMA的組織,牽頭制定JavaScript的標準,取名為ECMAScript。
簡單來說ECMAScript不是一門語言,而是一個標準。符合這個標準的比較常見的有:JavaScript、Action Script(Flash中用的語言)。就是說,你JavaScript學完了,F(xiàn)lash中的程序也會寫了。
ECMAScript在2015年6月,發(fā)布了ECMAScript 6版本,語言的能力更強。但是,瀏覽器的廠商不能那么快的去追上這個標準。這些新的特性,我們就業(yè)班的深入,也會給大家介紹。
1.4、今天的javascript:承擔更多責任
2003年之前,JavaScript被認為“牛皮鮮”,用來制作頁面上的廣告,彈窗、漂浮的廣告。什么東西讓人煩,什么東西就是JavaScript開發(fā)的。所以瀏覽器就推出了屏蔽廣告功能。
2004年JavaScript命運開始改變了,那一年谷歌公司,開始帶頭使用Ajax技術(shù)了,Ajax技術(shù)就是JavaScript的一個應用。并且,那時候人們逐漸開始提升用戶體驗了




2011年,Node.js誕生,使JavaScript能夠開發(fā)服務器程序了。
今天,JavaScript工程師是絕對的吃香,能夠和iOS、Android工程師比肩,毫不遜色的。
現(xiàn)在,公司都流行WebApp,就是用網(wǎng)頁技術(shù)開發(fā)手機應用。什么意思呢?手機系統(tǒng)有iOS、安卓、windows phone。那么公司比如說開發(fā)一個“攜程網(wǎng)”APP,就需要招聘三隊人馬,比如iOS工程師10人,安卓工程師10人,windows工程師10人。共30人,工資開銷大。并且,如果要改版,要改3個版本。所以,現(xiàn)在公司,都用web技術(shù),用html+css+javascript技術(shù)來開發(fā)app。好處是不用招聘那么多工程師,只需要幾個前端開發(fā)工程師即可。并且也易于迭代,就是網(wǎng)頁一改變,所有的終端都變了。
2、Js介紹
概念:js是一門在客戶端進行交互的網(wǎng)頁編程語言
組成:
ecmascript js標準
dom 可以利用JS操作網(wǎng)頁元素
bom 通過api來操作瀏覽器
特點:
簡單易用
基于對象
基于過程
解釋執(zhí)行:js js引擎來執(zhí)行源代碼
編譯執(zhí)行:Java c# 源代碼==>可執(zhí)行文件.dll ==>電腦執(zhí)行.dll課執(zhí)行文件
使用范圍:
表單驗證
輪播圖特效
游戲開發(fā)
3、Js書寫位置
內(nèi)嵌式寫法
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
js信息
</script>
</head>
外鏈式寫法
<script type="text/javascript" src="1.js"></script>
新建一個js文件
通過script標簽里的src=”1.js”屬性將JS文件調(diào)入到當前頁面。
補充內(nèi)嵌式寫法:
推薦Js代碼最好放在body結(jié)束標簽的后邊。
補充外鏈式寫法:
推薦將多個js文件合并為一個js文件在瀏覽器中執(zhí)行。
4、Js初體驗
4.1在頁面中輸出 消息的幾種寫法
alert("消息") 在頁面出現(xiàn)一個彈出框,將信息彈出。
confirm("消息")在頁面出現(xiàn)一個彈出框,將信息顯示,常與if判斷語句結(jié)合使用
prompt("消息") 彈出一個文本框,可以在文本框接收內(nèi)容,常用于接收信息
console.log(“信息”) 將信息輸出到控制臺,常用于代碼調(diào)試。
document.write("信息") 直接在頁面輸出消息
document.write("<strong>我是帥哥></strong>")
注意:document.write("消息"),不僅可以輸出內(nèi)容,還可以輸出html標簽。
4.2、代碼注釋
快捷鍵:ctrl+/
單行注釋://
多行注釋:/* */
4.3、分號的問題
一行代碼結(jié)束后,必須在后邊加上分號。
5、變量
變量就是變化的變量
變量的作用就是用來裝數(shù)據(jù)的容器
5.1、定義變量
定義變量使用var 來定義變量名
``
var name;//定義變量`
使用賦值運算符來給變量賦值
name="李四";//給變量賦值
賦值運算符
賦值運算符為“=”,這個符號不用判斷兩者是否相同
如果判斷是否相同,可使用==(===)
以上兩步可簡寫為
var name="李四"http://定義變量和賦值
####5.3、變量的命名規(guī)范
不能使用純數(shù)字或者數(shù)字開頭來定義變量名。
不推薦使用漢字來定義變量名。
不能使用特殊符號或者特殊符號開頭來定義變量名(_除外)
不能使用關(guān)鍵字來定義變量名

不能使用保留字來定義變量名

注意:在JS中,是嚴格區(qū)分大小寫的。
#6、數(shù)據(jù)類型
簡單類型
number 數(shù)字類型
包括正數(shù),負數(shù),小數(shù)
取值范圍:
能表示的最大值是±1.7976931348623157乘以10的308次方
能表示的最小值是±5 乘以10的-324次方
表示方式
十進制
十六進制
以0x開頭,從0-9,a(A)到f(F)的范圍。
var n1="0xaca"http://十六進制
alert(n1);
表示方式
十進制
十六進制
以0x開頭,從0-9,a(A)到f(F)的范圍。
八進制
以0開頭,0-7組成。
string 字符串
凡是用””或者’’引起來的全是字符串類型。
轉(zhuǎn)義字符:
\” 轉(zhuǎn)雙引號
\’ 轉(zhuǎn)單引
\r 回車
\n 換行

boolean 布爾類型
布爾數(shù)據(jù)類型兩個數(shù)據(jù)值: true false
實際運算中,true 代表1 false代表0;
undefined 未初始化
定義變量,未賦值
null object(值為空) 引用 為空,內(nèi)存里找不到這個變量
var n; //定義undefined 定義變量,未賦值。
var n1=null;//定義了變量,引用為空,在內(nèi)存找不到這個變量
alert(n1);
var n2="" //空字符串類型 內(nèi)存里可以找到這個變量
復雜類型
object 對象
array 數(shù)組
#7、比較運算符
< > >= <= !=
#8、判斷數(shù)據(jù)類型
typeof(變量名);
#9、算術(shù)運算符
+
加運算:
兩個數(shù)據(jù)類型都為數(shù)字類型變量相加,得到的數(shù)字類型。
一個為數(shù)字類型的變量和一個為字符串類型的變量相加,得到的是一個字符串類型,加號起一個連接的作用。
var n1=123;
var b2="123";
alert(n1+n2);
alert(typeof(n1+n2));
-
減運算:
如果兩個變量都為數(shù)字類型相減,得到的是數(shù)字類型。
如果一個為數(shù)字類型的變量,一個為數(shù)字字符串,相減得到的是數(shù)字類型。
如果一個數(shù)字類型的變量,一個為非數(shù)字字符串,相減得到的NaN,數(shù)字類型。
NaN not a number
兩個都為字符串的變量相減,得到的是NaN.
*
/
除運算
兩個都為數(shù)字類型的變量,相除得到的是數(shù)字類型。
如果一個為數(shù)字類型的變量,一個為數(shù)字字符串變量,相除得到的是數(shù)字類型。
如果一個數(shù)字類型的變量,一個為非數(shù)字字符串,相除得到的是NaN,數(shù)字類型。
如果0作為除數(shù),得到的是infinitiy(無限大),是一個數(shù)字類型。
% 取余數(shù)
0優(yōu)先級 先計算()括號里面的值。
