javascript
JavaScript基础总结(1)
Javascript簡介
弱類型的腳本語言。代碼是逐行執(zhí)行的
分為嵌入式,外鏈式{<script scr=''></script>}
與用戶交互
1.alert :彈出警示框 2.prompt:彈出輸入框
3.console.log:在控制臺上打印 4.document.write:在頁面輸出、顯示
一. 變量
1.JS定義或者叫做聲明變量
語法: var 變量名 = 值
var 定義變量的關(guān)鍵字
空格 分割變量名和關(guān)鍵字的 必須有空格
變量名 你自己起的一個名字用來代表后面的一串東西的
等于號 在js里面 等于號就是賦值的意思 把右邊的內(nèi)容賦值給左邊的變量名
值 你定義的變量代表的內(nèi)容
##變量的命名規(guī)范和命名規(guī)則
1.規(guī)則:
1.1 一個變量只能有數(shù)字(0-9) 字母(a-zA-Z) 美元符($) 下劃線(_) 組成
1.2 一個變量不能有數(shù)字開頭
1.3 在JS中嚴格區(qū)分大小寫 比如說 num Num nUm nuM 等等都不是同一個變量
1.4 不能使用關(guān)鍵字或者保留字
關(guān)鍵字:現(xiàn)在JS語法中正在使用的關(guān)鍵字(比如說var)
保留字:現(xiàn)在JS還沒用 但是將來可能會用
2.規(guī)范:建議你去遵守,因為大家都這樣
2.1 不要使用中文命名
2.2 變量命名應該語義化
2.3 駝峰命名法 當一個變量是由多個單詞組成的時候 第二個單詞開始 首字母大寫
變量的語法:
| var age;console.log(age); | 只聲明,不賦值 | undefined |
| console.log(age); | 不聲明,不賦值直接使用 | 報錯 |
| age=10;console.log(age); | 不聲明,只賦值 | 10 |
console.log(num);變量提升//undefined
var num=1;
2.數(shù)據(jù)的類型
1.數(shù)值類型 number (表示整數(shù)和浮點數(shù))
2.字符型 string (表示字符串)
3.布爾型 boolean{有兩個值1.ture 2.false} flag是布爾型的變量
4.未定義型 undefined (聲明變量,但沒有給值)
5.空型 null (清空變量)
6.數(shù)組 arr
7.對象 obj
2.1數(shù)據(jù)類型的轉(zhuǎn)換
1.數(shù)組類型轉(zhuǎn)換為字符串類型 to string()
var num=100;
console.log(num tostring());
console.log(typeof num tostring()) {這里typeof是檢測數(shù)據(jù)類型的}
2.利用string() 這是強制轉(zhuǎn)換,任何數(shù)據(jù)類型都可以轉(zhuǎn)換為子符串
var num1=100;
console.log(string(num1));
console.log(typeof string(num1))
3.利用加號拼接字符串的方法實現(xiàn)轉(zhuǎn)換效果
var num2=100;
console.log(num2+' ');
console.log(typeof (num2+' '))
4.其他類型的轉(zhuǎn)換位數(shù)字型
1.parseInt() 得到的是整數(shù),沒有四舍五入
2.paseFloat() 得到的是浮點小數(shù)
3.number 強制轉(zhuǎn)換
二.比較、執(zhí)行算數(shù)運算
1.算數(shù)運算符
1.是由數(shù)字運算符變量等組成的式子。表達式最終都會有一個結(jié)果,返回給我們
2.遞增遞減
1.讓變量自己加一,不管是放在變量前面還是后面,遞增運算符都必須配合變量使用
++num 前置遞增 先自加一后返回值
num++ 后置遞增 先返回值后自加一
3.比較運算符
1.比較運算符
兩個數(shù)據(jù)進行比較的符號
// 1. > 左邊大于右邊 得到true
左邊不大于右邊 得到false
// 2. < 左邊小于右邊 得到true
// 左邊不小于右邊 得到false
// 3. >=
// 左邊大于或者等于右邊 得到true
// 左邊小于右邊 得到false
// 4. <=
// 左邊小于或者等于右邊 得到true
// 左邊大于右邊 得到false
// 5. ==
// 比較兩邊的數(shù)據(jù)值是不是相等,不管數(shù)據(jù)類型
// 6. ===
// 比較兩邊的數(shù)據(jù)是不是相等 值和數(shù)據(jù)類型都要比較
// 7. !=
// 比較兩邊的數(shù)據(jù)值是不是不等 不管數(shù)據(jù)類型
// 8. !==
// 比較兩邊的數(shù)據(jù)是不是不等 值和數(shù)據(jù)類型都要比較
// 值不一樣那可定是true 當數(shù)據(jù)類型不一樣的時候 那就是true 不再管值了
4.邏輯運算符
1.&& 邏輯與 都要滿足。兩側(cè)都為真的,一個假的,結(jié)果就是假的
2.|| 邏輯或 多個條件有一個都可以滿足 兩側(cè)只要一個為真,他就是真。兩側(cè)只要都是假,結(jié)果就是假
3.! 邏輯非 就是取反的意思 console.log(!true) //false 真的都能變?yōu)榧俚?/p>
5.賦值運算符
//賦值運算符:進行數(shù)據(jù)賦值的符號
// 1. =
// 賦值:把等于號右邊的賦值給左邊的變量
// 2. +=
// 這個是加法和賦值的合作
// a+=b 等價于 a=a+b 注意順序一定不能寫反了 就是自己在自己的基礎上疊加
// 因為你在計算數(shù)的時候是一樣的 a+b 和 b+a 沒區(qū)別
// 但是字符串在拼接的時候誰在前面誰在后面就有區(qū)別了
// 3. *=
// 這個是乘法和賦值的合作
// a=b 等價于 a=ab
// 在自己的基礎上進行疊加
// 4. /=
// 5. %=
// 6. -=
// = 直接賦值 var num=10;
// += -= 加減一個數(shù)后再賦值 var age=10; age+=5; console.log(age)
// = /= %= 乘等 除等 取模賦值 var age=2; age=5; console.log(age)
6.運算符的優(yōu)先級(權(quán)重)
優(yōu)先級 運算符 順序
// 1 小括號 ()
// 2 一元運算符 ++ -- !
// 3 算術(shù)運算符 先* / % 再+ -
// 4 關(guān)系運算符 > >= < <=
// 5 相等運算符 == != === !==
// 6 邏輯運算符 先邏輯與&& 再邏輯或 ||
// 7 賦值運算符 =
// 8 逗號運算符 , 聲明多個變量用逗號隔開
// 總結(jié) 一元運算符里面的邏輯非 ! 優(yōu)先級很高
// 邏輯與比邏輯或優(yōu)先級高
2.短路運算符
1.表達式1&&表達式2如果表達式1為真則返回表達式2,如果表達式均為真,則返回為真的最后一個表達式如果表達式1為假則返回表達式1,如果表達式中任何一個為真,則返回第一個為假的表達式如果有空或者否定意義的為假,其余都是真的 2.表達式1||表達式2(多個兩兩比較)如果1為真,則返回表達式1,后面的不在運算如果表達式為假,則返回最后一個為假的表達式如果表達式為1為假,則返回表達式2五種情況下為假:0,'_',Nan,null,undefined三.流程控制
流程控制:簡單理解就是控制我們的代碼按照什么結(jié)構(gòu)順序來執(zhí)行,以便達到不同的運算結(jié)果
流程控制主要有三種結(jié)構(gòu):順序結(jié)構(gòu) 分支結(jié)構(gòu) 循環(huán)結(jié)構(gòu) 代表三種代碼執(zhí)行順序
順序流程控制:是程序中最簡單,最基本的流程控制,他沒有特定的語法結(jié)構(gòu),程序會按照代碼的先后順序,依次執(zhí) 行,程序中大多是這樣執(zhí)行的,我們以前寫的代碼大部分就是按照順序結(jié)構(gòu)來執(zhí)行的
分支流程控制:就是由上到下的執(zhí)行過程中,可以根據(jù)不通的條件,執(zhí)行不同的路徑代碼,從而得到不同的結(jié)果。
分支流程控制主要有兩種語句:if語句 switch語句
語句:理解成一個行為或者小動作 循環(huán)語句和分支語句就是典型的語句,一個程序有很多的語句構(gòu)成,一般情況下,會分割成一個一個的語句。
1.if語句
1.1if條件語句:四種書寫方式
-
// 1-1. if(條件){要執(zhí)行的代碼} (分支結(jié)構(gòu))
-
// 當條件滿足的時候(也就是表達式為true)的時候 執(zhí)行大括號里面的代碼
-
// 當條件不滿足的時候(也就是表達式為false)的時候 不執(zhí)行大括號里面的代碼
-
// 1-2. if(條件){要執(zhí)行的代碼} else {要執(zhí)行的代碼} (雙分支語句)
-
// 當條件滿足的時候 執(zhí)行if后面大括號里面的代碼
-
// 當條件不滿足的時候 執(zhí)行else后面大括號里面的代碼
-
// 1-3. if(條件1){ 條件1要執(zhí)行的代碼} else if(條件2){條件2要執(zhí)行的代碼} (多分支語句)
-
// 從第一個開始 哪一個條件滿足了 就執(zhí)行哪一個{}里面的代碼
-
// 如果前面的滿足了 那么后面的就都不執(zhí)行了
-
// 若干個大括號 最多只能夠執(zhí)行一個
-
// 1-4. if(條件1){條件1要執(zhí)行的代碼} else if(條件2){條件2要執(zhí)行的代碼} else{所有的條件都不滿足的時候執(zhí)行的代碼}
-
// 從第一個開始 滿足哪一個條件 執(zhí)行哪一個大括號里面的代碼
-
// 前面的滿足了 后面的就都不執(zhí)行了
-
// 所有的條件都不滿足的時候 執(zhí)行else里面的代碼
-
// 若干個大括號 必然會執(zhí)行其中的一個
-
// 1-1 if語句
? //var n = 28;// if (n >= 18) {// ? ? console.log('可以進入網(wǎng)吧');// }// console.log('后續(xù)的代碼');
2.三元表達式
結(jié)構(gòu):條件表達式?表達式1:表達式2; var result=num<5?'你答對了':'你答錯了'; alert(result) 由?和冒號組成的式子叫三元表達式3.switch case 多分支判斷語句
switch(){case 1;console.log('');break;case 2;console.log('');default; } switch 語句執(zhí)行效率更高比if else語句。但主要適用于針對特殊值四.循環(huán)結(jié)構(gòu)
1.for循環(huán)for(var i=1;i<=100;i++){console.log();循環(huán)體}var i=1;初始變量 i<=100;終止條件 ?目的:可以重復使用此代碼 2.for雙循環(huán)for(){for(){}}外層for循環(huán)是遍歷的次數(shù),內(nèi)層是交換的次數(shù) 3.while 循環(huán)var n = 8;while (n < 10) {console.log('我被執(zhí)行了');n++;}console.log('后續(xù)代碼'); 4.do while循環(huán)var i = 8;do{console.log('我被執(zhí)行了');i++;}while(i<=100);continue和break的區(qū)別:
1.continum 結(jié)束本次循環(huán),繼續(xù)執(zhí)行下一次代碼//continue案例 求1——100之間,除了能被7整除的數(shù)字之和 ?var sum = 0;for (var i = 1; i <= 100; i++) {if (i % 7 == 0) { //如果能夠被7整除continue; //就結(jié)束當前循環(huán)};sum += i; ?}console.log(sum);2.break ? 結(jié)束整個循環(huán),只要遇到break,立馬退出循環(huán)for (var i = 1; i <= 5; i++) {if (i == 3) {break;}console.log('我正在吃第' + i + '個包子');}console.log('沒吃飽'); ?五.數(shù)組
-
1.Array 數(shù)組:有兩種
-
var arr=new Array();
-
var arr=[ ];
-
總:數(shù)組和變量之間的區(qū)別:普通變量一次只能存儲一個值(數(shù)值型,字符串,布爾型,空值和undefined),數(shù)組一次可以存儲多個值,其中可含有有多個數(shù)據(jù)類型
-
2.數(shù)組的訪問 [ ]索引號
-
索引號,就是數(shù)組對象中每個數(shù)組 元素對應的序號從0開始
-
不僅可以通過索引號來訪問咱們的數(shù)組元素,還可以通過索引來設置,修改相對應得數(shù)組元素 數(shù)組名[索引]=值
-
給數(shù)組添加新元素通過數(shù)組名[新的索引]
-
-
3.數(shù)組遍歷
-
本質(zhì)就是把數(shù)組的元素從頭到尾訪問一次 ,用for循環(huán)
-
for里面的數(shù)組元素 arr[i],里面的i是計數(shù)器,把i當做數(shù)組的索引號來用,從0開始;
-
-
4.數(shù)組長度
-
arr.length(長度)
-
通過length這個屬性來完成數(shù)組的長度。arr.length可以監(jiān)測數(shù)組元素的個數(shù)
-
數(shù)組的索引號和數(shù)組的長度有什么關(guān)系呢?
-
索引號是從0開始的,數(shù)組長的是元素的個數(shù)
-
-
-
數(shù)組的最大值
-
max 最大值 min 最小值
//遍歷數(shù)組中的最大值 // [2,6,1,77,52,25,7] //案例分析 //1.聲明一個保存最大值的變量max //2.默認最大值就是取數(shù)組中的第一個元素 //3.遍歷這個數(shù)組,把里面的每個數(shù)組元素和max相比較 //4.如果這個數(shù)組元素大于max就把這個數(shù)組元素保存到max里面,否則繼續(xù)下一輪比較 //5.最后輸出這個max即可 //var arr = [2, 6, 1, 77, 52, 25, 7, 102, 89, 98, 253];var max = arr[0];for (var i = 0; i < arr.length; i++) {// console.log(arr[i]);if (arr[i] > max) { max = arr[i];}}console.log('這個數(shù)組的最大值就是:' + max); 最小值同理
-
-
新增數(shù)組元素
-
修改length的長度來新增數(shù)組
-
修改索引號在結(jié)尾添加數(shù)組,但不要給數(shù)字名字直接賦值
//1.新增數(shù)組元素的方法有兩種//1.新增數(shù)組元素 通過修改length長度 增加空元素var arr = ['關(guān)羽', '張飛', '劉備', '諸葛亮'];console.log(arr.length); //4arr.length = 7; //把我的數(shù)組長度改為7,里面應該有7個數(shù)組元素 本來就4個,強制改成7,就會在原來基礎上加上3個空元素console.log(arr); //['關(guān)羽', '張飛', '劉備', '諸葛亮','empty','empty','empty'];console.log(arr[4]); //新增的空元素只是聲明了,沒有給賦值,所以就是undefinedconsole.log(arr[5]); //新增的空元素只是聲明了,沒有給賦值,所以就是undefinedconsole.log(arr[6]); //新增的空元素只是聲明了,沒有給賦值,所以就是undefined//2.新增數(shù)組元素 通過修改索引號 追加數(shù)組元素 增加或者替換實體元素var arr1 = ['關(guān)羽', '張飛', '劉備', '諸葛亮'];console.log(arr1); //['關(guān)羽', '張飛', '劉備', '諸葛亮']arr1[4] = '趙云';console.log(arr1); //索引號沒出現(xiàn)的叫做追加元素/['關(guān)羽', '張飛', '劉備', '諸葛亮','趙云']arr1[5] = '馬超';console.log(arr1); //索引號沒出現(xiàn)的叫做追加元素arr1[0] = '曹操';console.log(arr1); //索引號出現(xiàn)的叫做替換arr1 = '三國混戰(zhàn)';console.log(arr1); //千萬不要直接給數(shù)組名字賦值,否則里面的數(shù)組元素都沒有了
-
-
翻轉(zhuǎn)數(shù)組
(var i=arr.length-1;i >=0;i - -)
1.//將數(shù)組['關(guān)羽','張飛','趙云','馬超','諸葛亮']的內(nèi)容反過來存放//1.聲明一個新數(shù)組 newArr//2.把舊數(shù)組的索引號第5個取過來(arr.length-1),給新數(shù)組索引號第0個元素(newArr.length)//3.我們采取遞減的方式 ? i--var arr = ['關(guān)羽', '張飛', '趙云', '馬超', '諸葛亮', '曹操'];var newArr = [];for (var i = arr.length - 1; i >= 0; i--) {newArr[newArr.length] = arr[i];}console.log(newArr);2.var str1='Hell0 world';console.log(str1.split('').reverse().join('')) 這里的split('')不能添加任何東西 -
篩選元素
-
數(shù)組去重或刪除指定的元素 數(shù)組名+索引的格式
//將數(shù)組[2,0,6,1,77,0,52,0,25,7]中大于等于10的數(shù)組元素篩選出來,并且放到新數(shù)組//1.聲明一個新的數(shù)組用于存放大于等于10的數(shù)組元素 var newArr//2.遍歷原來的舊數(shù)組,找出大于等于10的元素//3.使用新數(shù)組的數(shù)組長度屬性 ? newArr.length 剛開始length是0//4.依次追加給新數(shù)組newArrvar arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7, 105];var newArr = [];for (var i = 0; i < arr.length; i++) {if (arr[i] >= 10) {//新數(shù)組索引號應該從0開始,依次遞增newArr[newArr.length] = arr[i];//newArr.push(arr[i]);}}console.log(newArr);
-
-
冒泡排序
-
執(zhí)行的是從小到大,從大到小
-
比如:1---4 arr.length 4---1 arr.length-1
-
外層for遍歷的是次數(shù) 內(nèi)層for交換的次數(shù)
-
if(比較運算符決定了從大到小還是從小的大)
-
轉(zhuǎn)換 var a=10,b=20;
-
var temp=' ';
-
temp=a;
-
a=b;
-
b=temp;
-
- var arr=[1,3,5,7,9,10]; for(var i=0;i<arr.length;i++){for(var j=0;j<arr.length-1;j++){第一種if(arr[j]>arr[j+1]){var temp=arr[j]arr[j]=arr[j+1]arr[j+1]=temp}第二種if(arr[j]>arr[j+1]){[arr[j],arr[j+1]]=[arr[j+1],arr[j]]}} } console.log(arr) ?
-
六.函數(shù)
-
用function表示,是聲明函數(shù)的關(guān)鍵字。
-
就是封裝了一段代碼可以重復執(zhí)行調(diào)用的代碼塊
-
目的:讓大量的代碼可以重復使用
-
使用函數(shù)分為兩部分:聲明函數(shù)和調(diào)用函數(shù)
-
function 函數(shù)名(){
}
函數(shù)名()
函數(shù)不調(diào)用,自己不執(zhí)行
-
-
函數(shù)的參數(shù)
function 函數(shù)名(形參){代碼塊 } 函數(shù)名(實參) 形參是接受實參 多個參數(shù)之間用逗號隔開 -
函數(shù)的返回值
function 函數(shù)名(){return; } 函數(shù)名() reture需要返回的結(jié)果 函數(shù)reture的特點 1.終止函數(shù),reture后面的代碼不會被執(zhí)行 2.只能返回一個值,返回的結(jié)果是最后一個值.(誰在最后返回誰,逗號的情況下) 當我們的函數(shù)有return的時候,則返回return后面的的值,如果沒有return則返回undefined 總結(jié): //break和continue和return的區(qū)別//break:結(jié)束當前循環(huán)(如for,while循環(huán))//continue:就跳出本次循環(huán),繼續(xù)執(zhí)行下次循環(huán)(如for,while循環(huán)) ?//上面兩個主要針對循環(huán) ?//return 不僅可以退出循環(huán),還能夠針對函數(shù),結(jié)束當前函數(shù),并且返回return語句后面的值 -
arguments使用
-
只有函數(shù)才可以使用arguments,arguments是函數(shù)所獨有的內(nèi)置對象,存放所有的參數(shù),arguments是一個偽數(shù)組,并不是真正意義上的數(shù)組
-
//1.具有數(shù)組的length屬性
//2.按照索引的方式進行存儲
//3.它沒有真正數(shù)組的一些方法 pop() push()等
簡單總結(jié)一下: ?? ? //什么是arguments arguments是函數(shù)所獨有的內(nèi)置對象 它的展示形式就是一個偽數(shù)組 ?? ? //做什么用 ? ? 里面存放了用戶傳遞過來的所有實參 ?? ? //什么情況下使用: 當我們也不知道用戶到底傳多少個實參的時候,就用arguments ?? ? //有了arguments,我們不需要再去寫形參了,這就是arguments ? ?//利用arguments求任意個數(shù)的最大值function getMax() { //這里的arguments就相當于數(shù)組[1,2,3,4] 就是求數(shù)組[1,2,3,4]中的最大值var max = arguments[0];for (var i = 1; i < arguments.length; i++) {if (arguments[i] > max) {max = arguments[i];}}return max;}console.log(getMax(1, 2, 3, 4)); ?
-
-
函數(shù)的兩種聲明
//函數(shù)的兩種聲明方式//1.利用函數(shù)關(guān)鍵字定義函數(shù)(命名函數(shù))function fn() { ?}fn();//2.利用函數(shù)表達式(匿名函數(shù))聲明函數(shù) 不傳參數(shù)//var 變量名=function(){}var fun = function() {console.log('我是函數(shù)表達式'); ?}fun(); ?//傳參數(shù)var fun1 = function(aru) {console.log(aru); ?}fun1('陳飛燕');//1.fun是變量名 不是函數(shù)名//2.函數(shù)表達式聲明方式跟變量聲明差不多,只不過變量里面存的是值,var num=10 而函數(shù)表達式里面存的是函數(shù)//3.函數(shù)表達式也可以進行傳遞參數(shù)
七.作用域
-
分為兩種
-
1.全局作用域
-
在整個script標簽中,或者是一個單獨的JS文件(鏈入)
-
-
2.局部作用域
-
(又稱為函數(shù)作用域),在函數(shù)內(nèi)部就是局部,這個代碼的名字只在函數(shù)內(nèi)部起效果和作用
-
-
作用域:就是代碼名字(經(jīng)常使用變量),在摸個范圍內(nèi)起作用和效果,目的是為了提高程序的可靠性。更重要的是減少命名沖突
-
javascript 沒有塊級作用域,但在ES6新增了塊級
-
塊級作用域:{}表示的,如:if{},for{}
-
-
作用域鏈
-
1.內(nèi)部函數(shù)訪問外部函數(shù)的變量,采取的是鏈式查找的方式來決定取哪個值,這種結(jié)構(gòu)我們稱之為作用域鏈
-
采取就近原則
- //作用域鏈案例2var a = 1; ?function fn1() {var a = 2;var b = '22';fn2();console.log(b); ? ?function fn2() {var a = 3;fn3();console.log(b)console.log(a); ? ?function fn3() {var a = 4;console.log(a);console.log(b); ? ?}}}fn1();
-
八.預解析
-
js引擎運行js代碼分為兩步:預解析, 代碼執(zhí)行
-
1.什么叫預解析?
-
JS引擎會把JS里面的所有的var,還有function提升到當前作用域的最前面
-
-
2.什么叫代碼運行?
-
按照代碼書寫順序從上往下執(zhí)行
-
-
預解析分為兩種:變量預解析(變量提升)和函數(shù)預解析(函數(shù)提升)
-
1.變量提升:就是把所有變量提升到當前作用域的最前面,不提升賦值操作
-
2.函數(shù)提升:就是把所有函數(shù)聲明提升到當前作用域的最前面,不調(diào)用函數(shù)
- //案例2// var num = 10;// function fn() {// ? ? console.log(num);// ? ? var num = 20;// ? ? console.log(num);// }// fn();// console.log(num);//相當于執(zhí)行以下代碼// var num;// function fn() {// ? ? var num;// ? ? console.log(num); //undefined// ? ? num = 20;// ? ? console.log(num); //20// }// num = 10;// fn();
-
九.對象
-
object 對象·簡稱 obj
-
是一組無序的相關(guān)屬性和方法的集合具體的實實在在存在的
-
對象是由屬性和方法組成的
-
屬性:事物的特征(常用名字)
-
方法:事物的行為(常用動詞)
-
-
創(chuàng)建語法格式
-
對象的字面量{ }大括號
- 語法格式var obj = {uname: '可可',type: '阿拉斯加犬',age: '5歲',hair: 'Brownish red', //hair 頭發(fā)skill: function() {return '技能是:' + '汪汪汪' + '演電影'; ?}}; ?console.log(obj);console.log(obj.uname);console.log(obj['type']);console.log(obj.age);console.log(obj.hair);console.log(obj.uname, obj['type'], obj.age, obj.hair, obj.skill()); 符號:毛豆//區(qū)別//變量 單獨聲明并且賦值 使用的時候直接寫變量名 單獨存在//屬性 在對象里面的不需要聲明 使用的時候必須是 對象.屬性 對象['屬性']//2.函數(shù)和方法的相同點 都是實現(xiàn)某種功能 做某件事情//函數(shù)是單獨聲明的 并且調(diào)用的時候是 ? 函數(shù)名() ? 函數(shù)是單獨存在的//方法 在對象里面 ? 調(diào)用的時候 是 對象.方法()//變量:單獨聲明賦值 單獨存在//屬性:對象里面的變量稱為屬性,不需要聲明,用來描述該對象的特征//函數(shù):單獨存在的 通過函數(shù)名()的方式就可以調(diào)用//方法:對象里面的函數(shù)稱為方法,方法不需要聲明,使用 對象.方法名()方式就可以調(diào)用 方法是用來描述對象的行為和功能
-
用new object 創(chuàng)建對象
- //利用new Object創(chuàng)建對象var obj = new Object(); //這里創(chuàng)建一個空對象obj.uname = '張三豐'; //等分obj.age = 18;obj.sex = '男';obj.sayHi = function() {console.log('我的子彈已經(jīng)準備好了,臭哥哥');};//注意 (1)我們是利用等號賦值的方法 追加對象的屬性和方法// ? ? (2)每個屬性和方法之間用分號結(jié)束//在調(diào)用對象的時候是一樣的方法console.log(obj.uname);console.log(obj['sex']);obj.sayHi();符號:等分
-
構(gòu)造函數(shù)
-
就是把我們對象里面一些相同的屬性和方法抽取出來封裝到函數(shù)里面
-
泛指某一大類,首字母要大寫,不需要reture就可以返回結(jié)果
-
調(diào)用構(gòu)造函數(shù)必須使用new new star()
- 語法格式 function Star(name, age, sex) {this.name = name;this.age = age;this.sex = sex;this.skill = function() {return '唱歌';} ?}console.log(new Star('張學友', '18歲', '男'));
-
-
遍歷對象
-
用for in
-
語法格式
- for(變量 in ? 對象名){}
-
-
對象總結(jié)
-
對象是復雜類型:object
-
簡單的數(shù)據(jù)類型:number,string,boolean,nall,undefined
-
本質(zhì):是一組無序的相關(guān)屬性和方法的集合
-
-
九.內(nèi)置對象
##
-
javascript分為三種:自定義,內(nèi)置,瀏覽器 對象是獨有的
-
優(yōu)點:幫助我們快速開發(fā)
-
Math.pI 圓周率,屬性不帶小括號,方法帶小括號
-
Math.min()最小值
-
1.絕對值和三個取整
-
Math.abs()
-
Math.random() 隨機數(shù)
-
-
2.三個取整
-
1.Math.floor()向下取整,往小的取
-
2.Math.ceil()向上取整,往大的取
-
3.Math.round()四舍五入
-
得到一個兩數(shù)之間的隨機整數(shù),可以取得到最小值,但最大值取不到
-
Math.floor(Math.randow()*(max-min))+min
-
-
兩個數(shù)都可以取到
-
Math.floor(Math.randow()*(max-min+1))+min
-
-
是的,沒有高深的知識,沒有進階的技巧。只要肯努力相信你也可以成為大佬的。一起加油(^U^)ノ~YO
總結(jié)
以上是生活随笔為你收集整理的JavaScript基础总结(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信内网页分享,分享者能看到分享的图片(
- 下一篇: 微服务Spring Boot 整合 Re