JavaScript基礎(chǔ)筆記(Day01)

JavaScript:簡(jiǎn)稱:js

js(原名LiveScript)分為三部分
-ECMAScript 標(biāo)準(zhǔn)----js的基本語(yǔ)法
-DOM-----Document Object Model 文檔對(duì)象模型
-BOM-----Browser Object Model 瀏覽器對(duì)象模型

JavasScript是什么请敦?

  • 是一門腳本語(yǔ)言
  • 是一門解釋性語(yǔ)言
  • 是一門動(dòng)態(tài)類型的語(yǔ)言
  • 是一門基于對(duì)象的語(yǔ)言

拓展:

編譯語(yǔ)言:需要把代碼翻譯成計(jì)算機(jī)所認(rèn)知的二進(jìn)制的語(yǔ)言才能夠執(zhí)行永乌,
腳本語(yǔ)言:不需要編譯,直接執(zhí)行
常見的腳本語(yǔ)言:t - sql,cmd

js的作用岩睁?

解決用戶和瀏覽器之間的交互問(wèn)題

頁(yè)面代碼包含:

html:是標(biāo)記語(yǔ)言,展示數(shù)據(jù)
css:美化頁(yè)面
js:用戶與瀏覽器交互

js代碼可以分為三個(gè)地方書寫:

  • 在html的文件中揣云,script的標(biāo)簽中寫js代碼
  • js的代碼可以在html的標(biāo)簽中書寫
  • 在js文件中可以寫js代碼捕儒,但是需要在html的頁(yè)面中引入ScriptDear標(biāo)簽中的scr="js路徑"

js代碼的注意問(wèn)題:

1.在一對(duì)script的標(biāo)簽中有錯(cuò)誤的js代碼,那么該錯(cuò)誤的代碼后面的js代碼不會(huì)執(zhí)行
2.如果第一對(duì)的script標(biāo)簽中有錯(cuò)誤,不會(huì)影響后面的script標(biāo)簽中的js代碼執(zhí)行
3.script的標(biāo)簽中可以寫什么內(nèi)容type="text/javascript"是標(biāo)準(zhǔn)寫法或者寫language="JavaScript"都可以
* 但是,目前在我們的html頁(yè)面中,type和language都可以省略,原因:html是遵循h(huán)5的標(biāo)準(zhǔn)

4.有可能會(huì)出現(xiàn)這種情況:script標(biāo)簽中可能同時(shí)出現(xiàn)type和language的寫法.
如:
<script type="text/javascript" language="JavaScript">
</script>
5.script標(biāo)簽在頁(yè)面中可以出現(xiàn)多對(duì)
6.script標(biāo)簽一般是放在body的標(biāo)簽的最后的,有的時(shí)候會(huì)在head標(biāo)簽中
7.如果script標(biāo)簽是引入外部js文件的作用,那么這對(duì)標(biāo)簽中不要寫任何的js代碼,如果要寫,重新寫一對(duì)script標(biāo)簽,里面寫代碼

變量

操作的數(shù)據(jù)都是在內(nèi)存中操作

  • js中存儲(chǔ)數(shù)據(jù)使用變量的方式(名字,值--->數(shù)據(jù))
  • js中聲明變量都用var---->存儲(chǔ)數(shù)據(jù),數(shù)據(jù)應(yīng)該有對(duì)應(yīng)的數(shù)據(jù)類型
  • js中的字符串類型的值都用雙引號(hào)或者單引號(hào)
  • 變量---作用,存儲(chǔ)數(shù)據(jù)的或者是操作數(shù)據(jù)
  • 變量聲明(有var 有變量名字,沒(méi)有值),var 變量名字
  • 變量初始化(有var 有變量名字,有值)
  • 變量聲明的方式:

//變量的初始化(變量聲明的同時(shí)并且賦值了)
// = 的意義:賦值的含義
//存儲(chǔ)一個(gè)數(shù)字10
var number = 10;
//存儲(chǔ)一個(gè)5
var number2 = 5;
//存儲(chǔ)一個(gè)人的名字
var name = "小黑";
//存儲(chǔ)真(true)
var flag = true;
//存儲(chǔ)一個(gè)null--->相當(dāng)于是空
var nll = null;
//存儲(chǔ)一個(gè)對(duì)象
var obj = new Object();

  • 變量作用:用來(lái)操作數(shù)據(jù)的(可以存儲(chǔ),可以讀取)
    • 變量的聲明:沒(méi)有賦值
    • var 變量名;
    • 變量的初始化:有賦值
    • var 變量名=值;
    • 注意的基本的代碼的規(guī)范
    • js中聲明變量都用var
    • js中的每一行代碼結(jié)束都應(yīng)該有分號(hào);(寫代碼有分號(hào)的習(xí)慣)
    • js中的大小寫是區(qū)分的: var N=10; n
    • js中的字符串可以使用單引號(hào),也可以使用雙引號(hào),目前我們暫時(shí)使用雙引號(hào)

    變量名的注意問(wèn)題---變量名的命名規(guī)范,要遵循駝峰命名法

    • 1.變量的名字要有意義,
    • 2.變量名有一定的規(guī)范:一般以字母,符號(hào),下劃線開頭,中間或者后面可以有符號(hào),字母,數(shù)字
    • 3.變量名一般都是小寫的
    • 4.變量名如果是多個(gè)單詞,第一個(gè)單詞的首字母是小寫的,后面的所有的單詞的首字母都是大寫的,這種命名方式稱為:駝峰命名法
    • 5.不能使用關(guān)鍵字(系統(tǒng)自帶的一些單詞,不能使用)
    • 6.不會(huì)單詞用拼音,拼音也要遵循駝峰命名法
      聲明變量并初始化---變量的初始化----聲明變量賦值

注意;變量的名字是不能重名

變量的交換例子

1.使用第三方的變量進(jìn)行交換

// var num1=10;
// var num2=20;
// //把num1這個(gè)變量的值取出來(lái)放在temp變量中
// var temp=num1;
// //把num2這個(gè)變量的值取出來(lái)放在num1變量中
// num1=num2;
// //把temp變量的值取出來(lái)放在num2變量中
// num2=temp;
// console.log(num1);//20
// console.log(num2);//10

2.第二種方式交換:一般適用于數(shù)字的交換

// var num1 = 10;
// var num2 = 20;
// //把num1的變量中的值和num2變量中的值,取出來(lái)相加,重新賦值給num1這個(gè)變量
// num1 = num1 + num2;//30
// //num1變量的值和num2變量的值取出來(lái),相減的結(jié)果重新賦值給num2
// num2 = num1 - num2;//10
// //num1變量的值和num2變量的值取出來(lái),相減的結(jié)果重新賦值給num1
// num1 = num1 - num2;//20
// console.log(num1, num2);

注釋

/*
*
* 注釋:是解釋代碼的含義,給其他的程序員看的
* 注釋的方式:
* 1.單行注釋  //
* 2.多行注釋  /★★/
*
*
*
* */

//單行注釋:一般用在一行代碼的上面
/*多行注釋:一般是用在函數(shù)或者是一段代碼的上面*/

//代碼中如果沒(méi)有注釋,不規(guī)范,天天會(huì)被罵醒

//注釋后的代碼不執(zhí)行了

數(shù)據(jù)類型

js中的原始數(shù)據(jù)類型:number,string,boolean,null,undefined,object

/*
* number:數(shù)字類型(整數(shù)和小數(shù))
* string:字符串類型(的值一般都是用單引號(hào)或者是雙引號(hào)括起來(lái)) "34"
* boolean:布爾類型(值只有兩個(gè),true(真1),false(假0))
* null:空類型,值只有一個(gè):null,一個(gè)對(duì)象指向?yàn)榭樟?此時(shí)可以賦值為null
* undefined:未定義,值只有一個(gè):undefined
* 什么情況下的結(jié)果是undefined
* 變量聲明了,沒(méi)有賦值,結(jié)果是undefined
* 函數(shù)沒(méi)有明確返回值,如果接收了,結(jié)果也是undefined
* 如果一個(gè)變量的結(jié)果是undefined和一個(gè)數(shù)字進(jìn)行計(jì)算,結(jié)果:NaN不是一個(gè)數(shù)字,也沒(méi)有意義
* object:對(duì)象---->
*
* */

//如何獲取這個(gè)變量的數(shù)據(jù)類型是什么? 使用typeof 來(lái)獲取
//typeof 的使用的語(yǔ)法
/*
* 都可以獲取這個(gè)變量的數(shù)據(jù)類型是什么!
* typeof 變量名
* typeof(變量名)
*
*
*
* */
//是使用typeof 獲取變量的類型
console.log(typeof num);//number
console.log(typeof str);//string
console.log(typeof flag);//boolean
console.log(String(nll));//是null
console.log(typeof nll);//不是null
console.log(typeof undef);//undefined
console.log(typeof obj);//object
console.log(typeof(num));

數(shù)字類型

* 數(shù)字類型:整數(shù)和小數(shù)
*
* num=20;整數(shù)
* num=98.76;小數(shù)(其他的語(yǔ)言中,浮點(diǎn)型---單精度,雙精度浮點(diǎn))
* 所有的數(shù)字都是屬于number類型
* 其他的語(yǔ)言:
* 整數(shù)類型:int
* 單精度浮點(diǎn)型:float
* 雙精度浮點(diǎn)型:double
* js中可以表示哪些進(jìn)制
* var num=10;//十進(jìn)制
* var num2=012;//八進(jìn)制
* var num3=0x123;//十六進(jìn)制

//數(shù)字類型有范圍: 最小值和最大值
// console.log(Number.MAX_VALUE);//數(shù)字的最大值
// console.log(Number.MIN_VALUE);//數(shù)字的最小值

//不要用小數(shù)去驗(yàn)證小數(shù).
// var x=0.1;
// var y=0.2;
// var sum=x+y;
// console.log(sum==0.3);

//不要用NaN驗(yàn)證是不是NaN

//如何驗(yàn)證這個(gè)結(jié)果是不是NaN,應(yīng)該使用isNaN()

//var num;//-----變量聲明了,沒(méi)有賦值,結(jié)果是:undefined
//是不是不是一個(gè)數(shù)字----->不是一個(gè)數(shù)字嗎邓夕? NaN--->不是一個(gè)數(shù)字
//console.log(isNaN(10));

//判斷結(jié)果不是一個(gè)數(shù)字可以使用isNaN(變量名)

//var str="您好";

// var num;
// var sum=num+10;//NaN
// console.log(sum);
// console.log(isNaN(sum));//不是數(shù)字為true,是數(shù)字結(jié)果為false

//總結(jié):
/*
*
* 數(shù)字類型:number類型
* 無(wú)論是整數(shù)還是小數(shù)都是數(shù)字類型
* 不要用小數(shù)驗(yàn)證小數(shù)
* 不要使用NaN判斷是不是NaN刘莹,應(yīng)該使用isNaN(值或者是變量)
* 想要表示十進(jìn)制:就是正常的數(shù)字
* 想要表示八進(jìn)制:以0開頭
* 想要表示十六進(jìn)制:0x開頭
*
*
*
* */

字符串類型

//var str="10";//字符串
//var str2='20';//字符串

//字符串可以使用單引號(hào),也可以使用雙引號(hào)

//字符串的長(zhǎng)度如何獲取? 變量名.length

//    var str="what are you no sha lei";
//    //字符串的個(gè)數(shù)有多少個(gè)?這個(gè)字符串的長(zhǎng)度是多少
//    console.log(str.length);
//
//    var str1="fdshfjworwoijpfskj;akjfpojfiwnmoiwajdoiwajiwaewowj";
//    console.log(str1.length);

//html中的轉(zhuǎn)義符: <  &lt; > &gt; 空格: &nbsp;
//js中的字符串里也有轉(zhuǎn)義符

//tab鍵----水平制表符
//    console.log("哈哈\\嘎嘎");
//    console.log("哈哈\t嘎嘎");
//    console.log("哈哈\"嘎嘎");
//
//
//    console.log('哈哈\'嘎嘎');


//字符串的拼接: 使用+可以把多個(gè)字符串放在一起形成一個(gè)字符串
//只要有一個(gè)是字符串,其他的是數(shù)字,那么結(jié)果也是拼接,不是相加
//如果有一個(gè)是字符串,另一個(gè)不是字符串,使用- 號(hào),此時(shí)會(huì)發(fā)生計(jì)算
//    var str1="您好";
//    var str2="我好";
//    console.log(str1+str2);

//console.log("哈哈"+"嘎嘎"+"嘿嘿");
//    var str1="10";
//    var str2="20";
//    console.log(str1+str2);

//    var str1="10";
//    var str2=20;
//    console.log(str1+str2);

// var str1 = "10";
// var str2 = 5;
// //瀏覽器幫助我們自動(dòng)的把字符串類型轉(zhuǎn)成了數(shù)字類型,這種方式叫:隱式轉(zhuǎn)換
// console.log(str1-str2);

// var str1="10";
// var str2=5;
// console.log(str1*str2);

布爾類型

//布爾類型:的值有兩個(gè),一個(gè)是true(真),一個(gè)是false(假)

類型轉(zhuǎn)換

//其他類型轉(zhuǎn)數(shù)字類型:三種方式:
//1.parseInt();//轉(zhuǎn)整數(shù)

//    console.log(parseInt("10"));//10
//    console.log(parseInt("10afrswfdsf"));//10
//    console.log(parseInt("g10"));//NaN
//    console.log(parseInt("1fds0"));//1
//    console.log(parseInt("10.98"));//10
//    console.log(parseInt("10.98fdsfd"));//10

//2.parseFloat()//轉(zhuǎn)小數(shù)

//    console.log(parseFloat("10"));//10
//    console.log(parseFloat("10afrswfdsf"));//10
//    console.log(parseFloat("g10"));//NaN
//    console.log(parseFloat("1fds0"));//1
//    console.log(parseFloat("10.98"));//10.98
//    console.log(parseFloat("10.98fdsfd"));//10.98
//3.Number();//轉(zhuǎn)數(shù)字

// console.log(Number("10"));//10
// console.log(Number("10afrswfdsf"));//NaN
// console.log(Number("g10"));//NaN
// console.log(Number("1fds0"));//NaN
// console.log(Number("10.98"));//10.98
// console.log(Number("10.98fdsfd"));//NaN

//總結(jié):想要轉(zhuǎn)整數(shù)用parseInt(),想要轉(zhuǎn)小數(shù)用parseFloat()
//想要轉(zhuǎn)數(shù)字:Number();要比上面的兩種方式嚴(yán)格

//其他類型轉(zhuǎn)字符串類型
>//1    .toString()

// var num=10;
// console.log(num.toString());//字符串類型
// //2 String();
//
// var num1=20;
// console.log(String(num1));

//如果變量有意義調(diào)用.toString()使用轉(zhuǎn)換
//如果變量沒(méi)有意義使用String()轉(zhuǎn)換

// var num2;
// console.log(num2.toString());
// var num3=null;
// console.log(num3.toString());

//這個(gè)可以

// var num2;
// console.log(String(num2));
// var num3=null;
// console.log(String(num3));

//其他類型轉(zhuǎn)布爾類型

//1  Boolean(值);

//
// console.log(Boolean(1));//true
// console.log(Boolean(0));//false
// console.log(Boolean(11));//true
// console.log(Boolean(-10));//true
// console.log(Boolean("哈哈"));//true
// console.log(Boolean(""));//false
// console.log(Boolean(null));//false
// console.log(Boolean(undefined));//false

// var str=10;
// console.log(+str);

/*
*
* 操作符:一些符號(hào)-----用來(lái)計(jì)算
*
* 算數(shù)運(yùn)算符: + - * / %
* 算數(shù)運(yùn)算表達(dá)式:由算數(shù)運(yùn)算符連接起來(lái)的表達(dá)式
* 一元運(yùn)算符: 這個(gè)操作符只需要一個(gè)操作數(shù)就可以運(yùn)算的符號(hào) ++ --
* 二元運(yùn)算符: 這個(gè)操作符需要兩個(gè)操作數(shù)就可以運(yùn)算,
* 三元運(yùn)算符: -----
* 復(fù)合運(yùn)算符: += -= *= /= %=
* 復(fù)合運(yùn)算表達(dá)式:由復(fù)合運(yùn)算符連接起來(lái)的表達(dá)式
*
* var num=10;
* num+=10;------>就是:num=num+10;
* console.log(num);20
*
*
* 關(guān)系運(yùn)算符: > < >= <= ==不嚴(yán)格的 ===嚴(yán)格的 !=不嚴(yán)格的不等 !==嚴(yán)格的不等
* 關(guān)系運(yùn)算表達(dá)式:由關(guān)系運(yùn)算符連接起來(lái)的表達(dá)式
* 關(guān)系運(yùn)算表達(dá)式的結(jié)果是布爾類型
* 邏輯運(yùn)算符:
* &&---邏輯與--并且
* ||---邏輯或---或者
* !---邏輯非---取反--取非
* 邏輯運(yùn)算表達(dá)式:由邏輯運(yùn)算符連接起來(lái)的表達(dá)式
* 表達(dá)式1&&表達(dá)式2
* 如果有一個(gè)為false,整個(gè)的結(jié)果就是false
* 表達(dá)式1||表達(dá)式2
* 如果有一個(gè)為true,整個(gè)的結(jié)果為true
* !表達(dá)式1
* 表達(dá)式1的結(jié)果是true,整個(gè)結(jié)果為false
* 表達(dá)式1的結(jié)果是false,整個(gè)結(jié)果為true
*
* 賦值運(yùn)算符: =
*
*
*
*
* */

//字面量: 把一個(gè)值直接賦值給一個(gè)變量

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市焚刚,隨后出現(xiàn)的幾起案子点弯,更是在濱河造成了極大的恐慌,老刑警劉巖矿咕,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抢肛,死亡現(xiàn)場(chǎng)離奇詭異狼钮,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)捡絮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門燃领,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人锦援,你說(shuō)我怎么就攤上這事猛蔽。” “怎么了灵寺?”我有些...
    開封第一講書人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵曼库,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我略板,道長(zhǎng)毁枯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任叮称,我火速辦了婚禮种玛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瓤檐。我一直安慰自己赂韵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開白布挠蛉。 她就那樣靜靜地躺著祭示,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谴古。 梳的紋絲不亂的頭發(fā)上质涛,一...
    開封第一講書人閱讀 49,929評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音掰担,去河邊找鬼汇陆。 笑死,一個(gè)胖子當(dāng)著我的面吹牛带饱,可吹牛的內(nèi)容都是我干的毡代。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼纠炮,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼月趟!你這毒婦竟也來(lái)了灯蝴?” 一聲冷哼從身側(cè)響起恢口,我...
    開封第一講書人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎穷躁,沒(méi)想到半個(gè)月后耕肩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體因妇,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年猿诸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了婚被。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡梳虽,死狀恐怖址芯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情窜觉,我是刑警寧澤谷炸,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站禀挫,受9級(jí)特大地震影響旬陡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜语婴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一描孟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧砰左,春花似錦匿醒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至酬核,卻和暖如春蜜另,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嫡意。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工举瑰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蔬螟。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓此迅,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親旧巾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子耸序,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容