1.操作符
賦值運算符
= += -= *= /= %=
案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
var num=5;
var num1=num+5; //10
num1+=5; // num1=num1+5
console.log(num1);//15
num1-=5; // num1=num1-5
console.log(num1);//10
num1*=5; // num1=num1*5
console.log(num1); //50
num1/=5; // num1=num1/5
console.log(num1); //10
num1%=5; // num1=num1%5
console.log(num1); //0
</script>
</head>
<body>
</body>
</html>
運算符的優(yōu)先級
優(yōu)先級從高到底
1. () 優(yōu)先級最高
2. 一元運算符 ++ -- !
3. 算數(shù)運算符 先* / % 后 + -
4. 關系運算符 > >= < <=
5. 相等運算符 == != === !==
6. 邏輯運算符 先&& 后||
7. 賦值運算符
// 練習1:
4 >= 6 || '人' != '阿凡達' && !(12 * 2 == 144) && true
// 練習2:
var num = 10;
5 == num / 2 && (2 + 2 * num).toString() === '22'
2.表達式和語句
表達式
一個表達式可以產(chǎn)生一個值米辐,有可能是運算艘希、函數(shù)調(diào)用、有可能是字面量拇囊。表達式可以放在任何需要值的地方迂曲。(現(xiàn)階段我們學的表達式是由操作符和操作數(shù)組成,并且最終會返回一個值寥袭。如:5+6=11 由兩個操作數(shù)5和6 以及一個操作符+組成路捧,5+6就是一個表達式,這個表達式最終會生成一個結果 5+6最終會返回11,11就是這個表達式的結果)
語句
語句可以理解為一個行為传黄,循環(huán)語句和判斷語句就是典型的語句杰扫。一個程序有很多個語句組成,一般情況下;分割一個一個的語句(簡單來說語句就是指令膘掰,告訴計算機我要做什么)
流程控制
程序的三種基本結構
- 順序結構
從上到下執(zhí)行的代碼就是順序結構
程序默認就是由上到下順序執(zhí)行的
- 分支結構
根據(jù)不同的情況章姓,執(zhí)行對應代碼
- 循環(huán)結構
循環(huán)結構:重復做一件事情
分支結構
if語句
語法結構
if (/* 條件表達式 */) {
// 執(zhí)行語句
}
if (/* 條件表達式 */){
// 成立執(zhí)行語句
} else {
// 否則執(zhí)行語句
}
if (/* 條件1 */){
// 成立執(zhí)行語句
} else if (/* 條件2 */){
// 成立執(zhí)行語句
} else if (/* 條件3 */){
// 成立執(zhí)行語句
} else {
// 最后默認執(zhí)行語句
}
案例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
//1. 求兩個數(shù)的最大數(shù)
var num1=1, num2=2;
if (num1>num2) {
console.log(num1);
}else{
console.log(num2);
}
//2.判斷一個數(shù)是偶數(shù)還是奇數(shù)
var num3=5;
if (num3%2==0) {
console.log(num3+'是偶數(shù)');
}else{
console.log(num3+'是奇數(shù)');
}
//3.分數(shù)轉換,把百分制轉換成ABCDE <60 E 60-70 D 70-80 C 80-90 B 90 - 100 A
var score=30;
if (score>=90) {
console.log('A');
}else if (score>=80) {
console.log('B');
}else if (score>=70) {
console.log('C');
}else if (score>=60) {
console.log('D');
}else {
console.log('青年努力吧');
}
//4.判斷一個年份是閏年還是平年
//閏年:能被4整除识埋,但不能被100整除的年份 或者能被400整除的年份
var year=2005;
if (year%4===0 && year%100!=0 || year%400===0) {
console.log(year+'是閏年');
}else{
console.log(year+'是平年');
}
//5. 判斷一個人的年齡是否滿18歲(是否成年)
var age=16;
if (age>=18) {
console.log(age+'歲凡伊,是成年人')
}else{
console.log(age+'歲,是未成年人')
}
</script>
</head>
<body>
</body>
</html>
三元運算符
表達式1 ? 表達式2 : 表達式3
是對if……else語句的一種簡化寫法
案例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
//1.是否年滿18歲
age=15;
age>=18?console.log(age+'歲窒舟,是成年人'):console.log(age+'歲系忙,是未成年人');
//2.從兩個數(shù)中找最大值
var n1=2, n2=3;
n1>n2?console.log(n1):console.log(n2);
</script>
</head>
<body>
</body>
</html>
switch語句
語法格式:
switch (expression) {
case 常量1:
語句;
break;
case 常量2:
語句;
break;
case 常量3:
語句;
break;
…
case 常量n:
語句;
break;
default:
語句;
break;
}
break可以省略,如果省略惠豺,代碼會繼續(xù)執(zhí)行下一個case
switch 語句在比較值時使用的是全等操作符, 因此不會發(fā)生類型轉換(例如银还,字符串'10' 不等于數(shù)值 10)
案例:
顯示星期幾
素質(zhì)教育(把分數(shù)變成ABCDE)千萬不要寫100個case喲
布爾類型的隱式轉換
流程控制語句會把后面的值隱式轉換成布爾類型
轉換為true 非空字符串 非0數(shù)字 true 任何對象
轉換成false 空字符串 0 false null undefined
// 結果是什么?
var a = !!'123';
案例
var message;
// 會自動把message轉換成false
if (message) {
// todo...
}
循環(huán)結構
在javascript中耕腾,循環(huán)語句有三種见剩,while、do..while扫俺、for循環(huán)苍苞。
while語句
基本語法:
// 當循環(huán)條件為true時,執(zhí)行循環(huán)體狼纬,
// 當循環(huán)條件為false時羹呵,結束循環(huán)。
while (循環(huán)條件) {
//循環(huán)體
}
代碼示例:
// 計算1-100之間所有數(shù)的和
// 初始化變量
var i = 1;
var sum = 0;
// 判斷條件
while (i <= 100) {
// 循環(huán)體
sum += i;
// 自增
i++;
}
console.log(sum);
案例:
打印100以內(nèi) 7的倍數(shù)
打印100以內(nèi)所有偶數(shù)
打印100以內(nèi)所有偶數(shù)的和
作業(yè):
打印100以內(nèi)的奇數(shù)
打印100以內(nèi)的奇數(shù)的和
do...while語句
do..while循環(huán)和while循環(huán)非常像疗琉,二者經(jīng)掣曰叮可以相互替代,但是do..while的特點是不管條件成不成立盈简,都會執(zhí)行一次凑耻。
基礎語法:
do {
// 循環(huán)體;
} while (循環(huán)條件);
代碼示例:
// 初始化變量
var i = 1;
var sum = 0;
do {
sum += i;//循環(huán)體
i++;//自增
} while (i <= 100);//循環(huán)條件
案例:
求100以內(nèi)所有3的倍數(shù)的和
使用do-while循環(huán):輸出詢問“我愛你太示,嫁給我吧?”香浩,選擇“你喜歡我嗎类缤?(y/n):",如果輸入為y則打印”我們形影不離“邻吭,若輸入為n,則繼續(xù)詢問
for語句
while和do...while一般用來解決無法確認次數(shù)的循環(huán)餐弱。for循環(huán)一般在循環(huán)次數(shù)確定的時候比較方便
for循環(huán)語法:
// for循環(huán)的表達式之間用的是;號分隔的,千萬不要寫成,
for (初始化表達式1; 判斷表達式2; 自增表達式3) {
// 循環(huán)體4
}
執(zhí)行順序:1243 ---- 243 -----243(直到循環(huán)條件變成false)
- 初始化表達式
- 判斷表達式
- 自增表達式
- 循環(huán)體
案例:
打印1-100之間所有數(shù)
求1-100之間所有數(shù)的和
求1-100之間所有數(shù)的平均值
求1-100之間所有偶數(shù)的和
同時求1-100之間所有偶數(shù)和奇數(shù)的和
打印正方形
// 使用拼字符串的方法的原因
// console.log 輸出重復內(nèi)容的問題
// console.log 默認輸出內(nèi)容介紹后有換行
var start = '';
for (var i = 0; i < 10; i++) {
for (var j = 0; j < 10; j++) {
start += '* ';
}
start += '\n';
}
console.log(start);
打印直角三角形
var start = '';
for (var i = 0; i < 10; i++) {
for (var j = i; j < 10; j++) {
start += '* ';
}
start += '\n';
}
console.log(start);
打印9*9乘法表
var str = '';
for (var i = 1; i <= 9; i++) {
for (var j = i; j <=9; j++) {
str += i + ' * ' + j + ' = ' + i * j + '\t';
}
str += '\n';
}
console.log(str);
作業(yè):
求1-100之間所有數(shù)的乘積
求1-100之間所有奇數(shù)的和
計算1-100之間能3整除的數(shù)的和
計算1-100之間不能被7整除的數(shù)的和
// 講解思路囱晴。如果不會寫程序膏蚓,可以先把數(shù)學公式準備好
本金10000元存入銀行,年利率是千分之三畸写,每過1年驮瞧,將本金和利息相加作為新的本金。計算5年后枯芬,獲得的本金是多少剧董?
有個人想知道,一年之內(nèi)一對兔子能繁殖多少對破停?于是就筑了一道圍墻把一對兔子關在里面。已知一對兔子每個月可以生一對小兔子尉剩,而一對兔子從出生后第3個月起每月生一對小兔子真慢。假如一年內(nèi)沒有發(fā)生死亡現(xiàn)象,那么理茎,一對兔子一年內(nèi)(12個月)能繁殖成多少對黑界?(兔子的規(guī)律為數(shù)列,1皂林,1朗鸠,2,3础倍,5烛占,8,13沟启,21)
continue和break
break:立即跳出整個循環(huán)忆家,即循環(huán)結束,開始執(zhí)行循環(huán)后面的內(nèi)容(直接跳到大括號)
continue:立即跳出當前循環(huán)德迹,繼續(xù)下一次循環(huán)(跳到i++的地方)
案例:
求整數(shù)1~100的累加值芽卿,但要求碰到個位為3的數(shù)則停止累加
求整數(shù)1~100的累加值,但要求跳過所有個位為3的數(shù)
作業(yè):
求1-100之間不能被7整除的整數(shù)的和(用continue)
求200-300之間所有的奇數(shù)的和(用continue)
求200-300之間第一個能被7整數(shù)的數(shù)(break)
調(diào)試
- 過去調(diào)試JavaScript的方式
- alert()
- console.log()
- 斷點調(diào)試
斷點調(diào)試是指自己在程序的某一行設置一個斷點胳搞,調(diào)試時卸例,程序運行到這一行就會停住称杨,然后你可以一步一步往下調(diào)試,調(diào)試過程中可以看各個變量當前的值筷转,出錯的話姑原,調(diào)試到出錯的代碼行即顯示錯誤,停下旦装。
-
調(diào)試步驟
瀏覽器中按F12-->sources-->找到需要調(diào)試的文件-->在程序的某一行設置斷點
-
調(diào)試中的相關操作
Watch: 監(jiān)視页衙,通過watch可以監(jiān)視變量的值的變化,非常的常用阴绢。
F10: 程序單步執(zhí)行店乐,讓程序一行一行的執(zhí)行,這個時候呻袭,觀察watch中變量的值的變化眨八。
F8:跳到下一個斷點處,如果后面沒有斷點了左电,則程序執(zhí)行結束廉侧。
tips: 監(jiān)視變量,不要監(jiān)視表達式篓足,因為監(jiān)視了表達式段誊,那么這個表達式也會執(zhí)行。
- 代碼調(diào)試的能力非常重要栈拖,只有學會了代碼調(diào)試连舍,才能學會自己解決bug的能力。初學者不要覺得調(diào)試代碼麻煩就不去調(diào)試涩哟,知識點花點功夫肯定學的會索赏,但是代碼調(diào)試這個東西,自己不去練贴彼,永遠都學不會潜腻。
- 今天學的代碼調(diào)試非常的簡單,只要求同學們記住代碼調(diào)試的這幾個按鈕的作用即可器仗,后面還會學到很多的代碼調(diào)試技巧融涣。
數(shù)組