基礎(chǔ)語法
? 預(yù)備知識
? ? 1.語句
? ? ? 通常一行代碼 如果添加了分號->一條語句
? ? ? 使用;分隔
? ? 2.變量
? ? ? 目的
? ? ? ? 通過一個名字 來表示一個可以改變的值
? ? ? 定義方式
? ? ? ? ver 變量名=值;
? ? ? ? ? var關(guān)鍵字
? ? ? ? 不賦值
? ? ? ? ? var 變量名
? ? ? 關(guān)鍵字
? ? ? ? 什么是關(guān)鍵字
? ? ? ? ? 語言本身提供的名字
? ? ? ? ? 有固定意義
? ? ? ? ? ? var
? ? ? ? ? ? ? 如var 就是定義變量的意思
? ? ? ? 語言本身 提供了很多關(guān)鍵字
? ? ? ? ? var
? ? ? ? ? for
? ? ? ? ? if
? ? ? 變量名
? ? ? ? 開發(fā)者起的一個名字
? ? ? ? 注意
? ? ? ? ? 1.不能使用關(guān)鍵字 定義變量名
? ? ? ? ? 2.不能以數(shù)字開頭
? ? ? ? ? 3.不能以特殊符號開頭
? ? ? ? ? 4.定義變量名要有意義
? ? ? ? ? ? 駝峰命名法
? ? ? ? ? ? ? 第一個首字母小寫其他首字母大寫
? ? ? ? ? ? 下劃線命名法
? ? ? ? 意義
? ? ? ? ? 變量名
? ? ? ? ? ? 開發(fā)者起的一個名字
? ? ? ? ? ? 外號
? ? ? ? ? ? 標記
? ? ? ? ? 值
? ? ? ? ? ? 具體內(nèi)容
? ? ? ? ? ? ? 數(shù)字
? ? ? ? ? ? ? 文字(字符串)
? ? ? ? ? ? ? 數(shù)組
? ? ? ? ? ? ? 對象
? ? ? ? ? 由名字 表示 后面的值
? ? ? ? ? ? 子主題 1
? ? 3.注釋
? ? ? 單行注釋
? ? ? ? Ctrl+/
? ? ? 多行注釋
? ? ? ? Ctrl+shift+/
? ? ? 沒實際意義,不會去執(zhí)行
只讓開發(fā)者看到
不讓瀏覽器看到,屏蔽了瀏覽器
? ? 4.調(diào)試
? ? ? 按F12(右鍵檢查元素)->console
? 數(shù)據(jù)類型
? ? Number 數(shù)字類型
? ? ? 包含浮點和整數(shù)
? ? String
? ? ? 字符串類型“”或者"包裹的都是字符串
? ? boolean
? ? ? 波爾類型
? ? ? ? true
? ? ? ? ? 對
? ? ? ? false
? ? ? ? ? 錯
? ? Array 數(shù)組
? ? Object 對象
? ? Function 函數(shù)
? 數(shù)據(jù)類型的轉(zhuǎn)換
? ? 字符串 轉(zhuǎn)數(shù)字
? ? ? 轉(zhuǎn)整數(shù)
? ? ? ? parselnt()
? ? ? 轉(zhuǎn)浮點
? ? ? ? parseFloat()
? ? ? ? ? 如何使用小數(shù)?
? ? ? ? ? ? 精度丟失
? ? ? ? ? ? ? 不要直接使用小數(shù)
? ? ? ? ? ? ? 非要使用
? ? ? ? ? ? ? ? 1.乘以100(精準的級別)倍
? ? ? ? ? ? ? ? 2.運算完畢 再還原倍數(shù)
? 運算符
? ? 算術(shù)運算符
? ? ? +
? ? ? -
? ? ? *
? ? ? /
? ? ? %
? ? 復(fù)合運算符
? ? ? +=
? ? ? ? var a =10;
var b = 20;
a =a+ b
? ? ? ? a += b
? ? ? -=
? ? ? ? var a =10;
var b = 20;
a- =a+ b
? ? ? *=
? ? ? /=
? ? ? %=
? ? ? ++
? ? ? ? 自己給自己增加一個一
? ? ? --
? ? ? ? 自己給自己減少一個一
? ? ? 自增自減運算符
? ? 比較運算符
? ? ? 結(jié)果
? ? ? ? 就是一個Boolean類型的值
? ? ? ? ? true
? ? ? ? ? false
? ? ? >
? ? ? <
? ? ? >=
? ? ? <=
? ? ? ==
? ? ? ? 忽略數(shù)據(jù)類型
? ? ? ? ? 1與“1”認為是相同的
? ? ? ===
? ? ? ? 嚴格查看數(shù)據(jù)類型
? ? ? ? ? 1與“1”認為是不相同的
必須類型與值都相同
? ? ? !=(不等于)
? ? ? ? 1 “1”
? ? ? ? ? 假的
? ? ? !==
? ? ? ? 1 “1”
? ? ? ? ? 真的
? ? 邏輯運算符
? ? ? 與&& (兩個and符)
? ? ? ? 所有條件 都必須滿足 才算真的
? ? ? 或||
? ? ? ? 只要有一個條件滿足 就是真的
? ? ? 非!
? ? ? ? 黑白顛倒
? ? ? ? ? 對的就是錯的 錯的就是對的
? ? ? ? /*
* 表示真的值
* true
* 1
* 有內(nèi)容的字符串“xx”(不是空字符串)
*(存在值的)有值的對象
*
* */
/*表示假的值
* false
* 0
* null
* undefineded
* NaN
* 空字符串“ ”
* */
? ? 三元運算(三目運算)
? ? ? 經(jīng)常代替if else語句
? ? ? ? if(睡覺){
做夢
}else{
掌握三元運算
}
? ? ? 三元運算
? ? ? ? 睡覺?做夢:掌握三元運算
? ? ? ? 條件?滿足執(zhí)行:不滿足執(zhí)行
? ? 必須 數(shù)字與 數(shù)字之間 運算
? 輸入內(nèi)容
? ? prompt() 彈窗
? 輸出
? ? console.log(a);//日志
? ? console.warn(a);//警告
? ? console.info(a);//詳細信息
? 調(diào)試方式
? ? 1.console.log(a);//日志
? ? 2.斷電調(diào)試(至少是半個大神級別才會)
? ? ? 在程序中 打點 阻止繼續(xù)執(zhí)行
? ? ? 調(diào)試流程
? ? ? ? 1.先通過經(jīng)驗 定位到 大概錯誤位置
? ? ? ? 2.打開瀏覽器中的sources
? ? ? ? ?
? ? ? ? 3.點擊要調(diào)試的文件(js)
? ? ? ? ?
? ? ? ? 4.在懷疑有錯誤的地方 點個點(打斷點 在數(shù)字位置)
? ? ? ? ?
? ? ? ? 5.程序重新運行會在斷點位置停止
->鼠標移動到斷點上面的變量
->就會顯示變量的值
? ? ? ? ?
? ? ? ? 6.如果繼續(xù)排錯 可以打多個斷點
通過播放鍵 跳到下一個斷點
通過下一步 執(zhí)行下一步代碼
? ? ? ? ?
? 分支結(jié)構(gòu)
? ? if語句
? ? ? if(條件){
}
? ? ? if(條件){
}else{
}
? ? ? if(){
}else if(){
}else{
}
? ? switch
? ? ? 選擇其中的某一個點子(case)
? ? ? switch(變量){
case值1:
break;
case值2:
break;
default:
}
? ? ? break不是強制添加的 如果不添加break 程序會繼續(xù)走下面的條件
? 循環(huán)結(jié)構(gòu)
? ? 知道循環(huán)次數(shù)
? ? ? for
? ? ? ? for(var i=0;i<5;i++){
循環(huán)體;
}
? ? ? ? for()中的各個語句的含義
? ? ? ? ? var i=0; 初始化變量
? ? ? ? ? i<5; 循環(huán)的條件
? ? ? ? ? i++;更改變量的值
? ? 不知道循環(huán)次數(shù)
? ? ? while
? ? ? ? while
? ? ? ? ? while(條件){循環(huán)體}
? ? ? ? do while
? ? ? do while
? ? ? ? 不管條件 滿不滿足 先執(zhí)行一次循環(huán)
? ? 循環(huán)相關(guān)的關(guān)鍵字
? ? ? continue
? ? ? ? 從continue的位置開始 跳過本次循環(huán)
? ? ? ? continue前面不會跳過
? ? ? ? for (var i=1;i<=100;i++) {
console.log("暈暈暈");
if (i===33||i===55||i===72) {
continue;
// 從continue的位置開始 跳過本次循環(huán)
}
console.log(i);
}
? ? ? break
? ? ? ? 跳出循環(huán)
? 函數(shù)
? ? 具備某些功能的工具
? ? 四種類型
? ? ? 無返回值
? ? ? ? 帶參數(shù)
? ? ? ? 不帶參數(shù)
? ? ? ? ? var 函數(shù)名 = function函數(shù)名(){}
? ? ? ? ? function函數(shù)名(){}
? ? ? ? ? 函數(shù)名()
? ? ? ? ? ? 整體
? ? ? 有返回值
? ? ? ? 帶參數(shù)
? ? ? ? 不帶參數(shù)
? ? ? ? 返回值
? ? ? ? ? 帶返回值的函數(shù)是什么?
? ? ? ? ? ? 返回值 是什么 函數(shù)就是什么
? ? ? ? ? ? 1
? ? ? ? ? ? ? function x(){return 1}
? ? ? ? ? return 值;(return 后面加個值)
? ? ? ? return
? ? ? ? ? 放到函數(shù)中
? ? ? ? ? ? return 值;
? ? ? ? ? ? ? 有返回值的函數(shù)
? ? ? ? ? ? return ;
? ? ? ? ? ? ? 跳出函數(shù)
? ? 組成
? ? ? 聲明函數(shù)
? ? ? ? function函數(shù)名(){}
? ? ? 調(diào)用函數(shù)
? ? ? ? 函數(shù)名()
? ? 內(nèi)置函數(shù)
? ? ? console.log();
? ? ? ? console.log() 方法用于在控制臺輸出信息。
該方法對于開發(fā)過程進行測試很有幫助。
? ? ? alert()
? ? ? ? alert() 方法用于顯示帶有一條指定消息和一個 確認 按鈕的警告框。
? ? ? Math.random();
? ? ? ? 隨機數(shù)
? ? ? prompt()
? ? ? ? prompt()方法用于顯示可提示用戶進行輸入的對話框。
? ? 封裝
? ? ? 編程思想
? ? 參數(shù)
? ? ? 形式參數(shù)
? ? ? ? 形參
? ? ? ? ? 沒有實際意義
? ? ? ? ? ? 代表著 即將傳進來的實參
? ? ? 實際參數(shù)
? ? ? ? 實參
? ? ? ? ? 是 實實在在的一個值
? ? 返回值
? ? ? 帶返回值的函數(shù)是什么?
? ? ? ? 返回值 是什么 函數(shù)就是什么
? ? ? ? 1
? ? ? ? ? function x(){return 1}
? ? ? return 值;(return 后面加個值)
? ? return
? ? ? 放到函數(shù)中
? ? ? ? return 值;
? ? ? ? ? 有返回值的函數(shù)
? ? ? ? return ;
? ? ? ? ? 跳出函數(shù)
? ? 作用域
? ? ? 概念
? ? ? ? 變量起作用的范圍
? ? ? 局部變量
? ? ? ? 作用域 只在定義的函數(shù)體 里面,在函數(shù)體外面是不可以使用的
? ? ? 全局變量
? ? ? ? 子主題 1
? ? ? 自執(zhí)行函數(shù)
? ? ? ? 作用域的問題(防止多個js文件間 變量互相影響)
? ? 作業(yè)
? ? 面試題
? 作業(yè)
? 回顧
? ? 1.
? ? ? 變量的定義
? ? ? ? 值可以被更改的量 叫做變量
? ? ? ? 公式:var 變量名 = 值;
? ? ? ? var a = 30;
a = 10;
a = 25;
? ? 2.
? ? ? 數(shù)據(jù)類型
? ? ? ? 數(shù)字Number
? ? ? ? ? 數(shù)字
? ? ? ? ? 字符串轉(zhuǎn)數(shù)字
? ? ? ? ? ? parseInt()
? ? ? ? ? ? ? 整數(shù)
一、腳本語言
語言特性:松散 對開發(fā)者的要求很低
如定義變量,嚴謹語言 int a=30;
松散的語言 var a=30 永遠不會認為開發(fā)者寫代碼有問題
定義的是數(shù)字,用的是字符串
1.把數(shù)組轉(zhuǎn)換成字符串
2.執(zhí)行開發(fā)者寫的程序
正常一條語句結(jié)束會用分號
二、1.語句 通常一行代碼如果添加了分號,就是一條語句 英文分號分隔
2.變量 目的 通過一個名字來表示一個可以改變的值
定義方式 var變量名=值 var關(guān)鍵字
不賦值 var變量名
關(guān)鍵字 var
什么是關(guān)鍵字 語言本身提供的名字 有固定意義 var定義變量用
變量名 開發(fā)者起的名字
注意:不能使用關(guān)鍵字定義變量名;不能以數(shù)字開頭;不能以特俗符號開頭;要有意 義 (駝峰命名:第一個單詞小寫其他字母大寫;下劃線命名法)
3.注釋
單行注釋// 多行注釋 Ctrl+shift+/
4.調(diào)試 f12 或者 右鍵檢查元素里面的 console
5.算數(shù)運算符
+
-
*
/
%(取余) 數(shù)字與數(shù)字之間運算
符合運算符 += -= *= /= %=
++給自己增加一個1
--給自己減少一個1
數(shù)據(jù)類型
* Number 數(shù)字(浮點《小數(shù)》、整數(shù))
* String 字符串類型 使用雙引號、單引號包裹起來的都叫字符串
* 字符串轉(zhuǎn)數(shù)字
轉(zhuǎn)整數(shù) parseInt()
轉(zhuǎn)浮點 parseFloat() 如果使用 parseFloat 不要直接使用小數(shù) 精度丟失
如果使用小數(shù),乘以10的n 倍(精準的級別)運算完畢在還原
* Array 數(shù)組
* Object 對象
* Function 函數(shù)
6.輸入內(nèi)容 prompt()
if語句
switch 選擇其中的某一個點子(case)
switch(變量){
case 值1:
break;
case 值2:
break;
default:}
break 不是強制添加 但是如果不添加break 程序會繼續(xù)走下面條件
例:
var loginType = 1;
// switch (loginType) {
// case 0:
// alert("手機號登錄");
// break;
// case 1:
// alert("QQ登錄");
// break;
// case 2:
// alert("WeChat登錄");
// break;
// case 3:
// alert("sina");
// break;
// default:
// alert("手機號登錄");
// break;
// }
具備某些功能的工具
四種類型
無返回值:帶參數(shù)
不帶參數(shù)
* 必須去使用(調(diào)用)這個函數(shù) 才會去執(zhí)行
* */
// var xx=function () {
// console.log("xxxxxxxx");
// };
//調(diào)用函數(shù)--》函數(shù)體里面的代碼才會去執(zhí)行
// xx();
參數(shù)
<script>
//形式參數(shù) dongxi 代表著調(diào)用函數(shù)的時候傳入的實數(shù)(實參)
function geilaoshixiayao(dongxi) {
document.write("老師喝了白開水混合"+dongxi);
}
//"冰糖" 實際參數(shù) 實際傳入到函數(shù)中的參數(shù)
geilaoshixiayao("冰糖");
geilaoshixiayao("毒藥")
;
</script>
有返回值:帶參數(shù)
不帶參數(shù)
知道循環(huán)次數(shù) for
for(var i =0 ;i<5;i++){ }
for()中的各個詞語的含義:var i=0初始化 變量 i<5;循環(huán)條件 i++更改變量的值
不知道循環(huán)次數(shù) while
//100以內(nèi)所有偶數(shù)的和
// var sum=0;
// for(var i=0;i<101;i++) {
// if (i % 2 === 0) {
// sum=sum+i;
// }
// }
// console.log(sum);
continue 從continue的位置開始 跳過本次循環(huán) continue前面不會跳過
//跳出循環(huán)
for(var i=1;i<101;i++){
console.log("YYYYY")
if(i===33){
continue;
}
if(i===55){
continue;
}
console.log(i);
}
//while循環(huán)
var blood =1000;
while (blood>0){
var skill=prompt("請輸入技能:1");
blood-=500;
console.log(blood);
}
while while(條件){循環(huán)體}
do while
do{}while()
返回值是什么 函數(shù)就是什么 function x(){return 1}
return 值
放到函數(shù)中
return 值 有返回值的函數(shù)
return 跳出函數(shù)
三元運算(三目運算)經(jīng)常代替 if else
if語句
if(睡覺){
做夢}
else{
掌握三元運算}
三元運算
睡覺? 做夢:掌握三元運算
條件(xx==c=xxx)?滿足執(zhí)行:不滿足執(zhí)行
? ? ? ?