Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 91精品国产综合久久福利,成人国产精品视频,国产精品亚洲综合一区在线观看

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          JavaScript08-常量

          JavaScript08-常量

          嘍,大家好,這里是雷工筆記!

          我們只管努力,剩下交給天意,或許哪天用的到,總比多刷半小時(shí)視頻要有意義吧。

          一、常量

          1、概念:使用const聲明的變量稱為“常量”。

          2、應(yīng)用場(chǎng)景:當(dāng)某個(gè)變量永遠(yuǎn)不會(huì)改變時(shí),就能夠使用const 來(lái)聲明,而不是let。

          3、命名規(guī)范:與變量一樣。

          示例:

          //聲明一個(gè)常量
          const P=3.14
          //輸出這個(gè)常量
          console.log(P)

          注意事項(xiàng):常量不允許重新賦值,聲明的時(shí)候必須初始化。

          提醒:不需要重新賦值的數(shù)據(jù)使用const。

          二、const,let,var之間的區(qū)別:

          1、在程序中如果值不會(huì)發(fā)生變化或不能改變,推薦使用const。

          2、在程序中如果值不斷地發(fā)生改變,那么推薦使用let(var)。

          3、const定義的常量必須設(shè)置默認(rèn)值。

          4、const定義的常量名不能重復(fù)。

          5、const定義的常量必須先定義后使用。

          三、后記

          以上為JavaScript常量的基礎(chǔ)知識(shí),比較簡(jiǎn)單,一看就懂,想忘都難。

          avaScript的組成部分

          1. ECMAScript:JavaScript的核心,描述了語(yǔ)言的基本語(yǔ)法(var、for、if、array等)和數(shù)據(jù)類型(數(shù)字、字符串、布爾、函數(shù)、對(duì)象(obj、[]、{}、null)、未定義)。
          2. 文檔對(duì)象模型:DOM(文檔對(duì)象模型)是 HTML 和 XML 的應(yīng)用程序接口(API)。DOM 將把整個(gè)頁(yè)面規(guī)劃成由節(jié)點(diǎn)層級(jí)構(gòu)成的文檔。
          3. 瀏覽器對(duì)象模型:BOM(瀏覽器對(duì)象模型)對(duì)瀏覽器窗口進(jìn)行訪問(wèn)和操作。例如彈出新的瀏覽器窗口,移動(dòng)、改變和關(guān)閉瀏覽器窗口等等。

          JavaScript關(guān)鍵字和保留字

          JavaScript描述了一組具有特定用途的關(guān)鍵字,一般用于控制語(yǔ)句的開(kāi)始或結(jié)束,或者用于執(zhí)行特定的操作等。

          JavaScriptScript全部關(guān)鍵字
          ?

          break

          else

          new

          var

          case

          finally

          return

          void

          catch

          for

          switch

          while

          continue

          function

          this

          with

          default

          if

          throw


          delete

          in

          try


          do

          instanceof

          typeof


          JavaScript還描述了另一組不能用作標(biāo)識(shí)符的保留字。盡管保留字在JavaScript中還沒(méi)有特定的用途,但它們很有可能在將來(lái)被用作關(guān)鍵字。

          ?JavaScriptScript全部保留字
          ?

          abstract

          enum

          int

          short

          boolean

          export

          interface

          static

          byte

          extends

          long

          super

          char

          final

          native

          synchronized

          class

          float

          package

          throws

          const

          goto

          private

          transient

          debugger

          implements

          protected

          volatile

          double

          import

          public


          ?JavaScriptScript瀏覽器定義的保留字
          ?

          alert

          eval

          location

          open

          array

          focus

          math

          outerHeight

          blur

          funtion

          name

          parent

          boolean

          history

          navigator

          parseFloat

          date

          image

          number

          regExp

          document

          isNaN

          object

          status

          escape

          length

          onLoad

          string

          JavaScript變量

          什么是變量?

          1. 在JavaScript中,變量指的是一個(gè)可以改變的量。也就是說(shuō),變量的值在程序運(yùn)行過(guò)程中是可以改變的。
          2. 變量是用于存儲(chǔ)數(shù)據(jù)的"容器"。我們通過(guò)「變量名」獲取數(shù)據(jù),甚至可以修改數(shù)據(jù)。
          3. 變量的本質(zhì)是程序在內(nèi)存中申請(qǐng)的一塊用來(lái)存放數(shù)據(jù)的空間。

          變量的命名

          1.變量的名字就和我們的名字一樣,程序也需要通過(guò)名字來(lái)找到對(duì)應(yīng)的數(shù)據(jù)。

          例如:曹老師,我想要JavaScript的視頻。曹老師就是變量的名字,JavaScript的視頻就是變量的值。

          2.在JavaScript中,給一個(gè)變量命名,我們需要遵循以下的原則:

          • 變量必須以字母開(kāi)頭
          • 變量也能以 $ 和 _ 符號(hào)開(kāi)頭(不過(guò)我們不推薦這么做)
          • 變量名稱對(duì)大小寫敏感(y 和 Y 是不同的變量)
          • JavaScript 語(yǔ)句和 JavaScript 變量都對(duì)大小寫敏感
          • 變量的聲明不能使用保留字和關(guān)鍵字

          變量的使用

          1.定義變量時(shí)要使用var操作符(var是關(guān)鍵),后面跟一個(gè)變量名(變量名是標(biāo)識(shí)符)。

          例:var a=100;

          如下圖所示:

          全套前端課程及資料請(qǐng)伽薇xiaole45666


          2.一個(gè)var也可以同時(shí)聲明多個(gè)變量名,其中變量名之間必須用英文逗號(hào)(,)隔開(kāi),例如:

          var a=10,b=20,c=30;
          

          JavaScript的常量

          在JavaScript中,常量指的是一個(gè)不能改變的量。也就是說(shuō),常量的值從定義開(kāi)始就是固定的,一直到程序結(jié)束都不會(huì)改變。

          在JavaScript中,我們可以把常量看成是一種特殊的變量,之所以特殊,是因?yàn)樗闹凳遣粫?huì)變的。一般情況下,常量名全部大寫,別人一看就知道這個(gè)值很特殊,有特殊用途,如:var DEBUG=1

          目前我們只需要簡(jiǎn)單了解常量的知識(shí),在之后的課程中我們會(huì)詳細(xì)講解。如需全套完整前端開(kāi)發(fā)教程及配套資料請(qǐng)伽薇xiaole45666


          應(yīng)該是JavaScript系列教程第三期,這期準(zhǔn)備講一下數(shù)據(jù)類型,常量以及變量的定義。

          任何的編程語(yǔ)言都有自己的數(shù)據(jù)類型與數(shù)據(jù)結(jié)構(gòu),那么JavaScipt也有自己的數(shù)據(jù)類型,可以將其分為基本數(shù)據(jù)類型引用數(shù)據(jù)類型!基本數(shù)據(jù)類型指的是簡(jiǎn)單的數(shù)據(jù)段,引用數(shù)據(jù)類型指的是有多個(gè)值構(gòu)成的對(duì)象。當(dāng)我們把變量賦值給一個(gè)變量時(shí),解析器首先要確認(rèn)的就是這個(gè)值是基本類型值還是引用類型值。

          JavaScipt 中,基本類型(基本數(shù)值、基本數(shù)據(jù)類型)是一種既非對(duì)象也無(wú)方法或?qū)傩缘臄?shù)據(jù)。有 7 種原始數(shù)據(jù)類型:

          基本數(shù)據(jù)類型是保存在棧中的,存取的速度比較快。

          引用數(shù)據(jù)類型我們通常統(tǒng)稱為Object類型,大致上分為一下5種:

          引用數(shù)據(jù)類型是保存在堆當(dāng)中的,這樣說(shuō)可能不準(zhǔn)確,準(zhǔn)確的說(shuō)法應(yīng)該是引用數(shù)據(jù)類型的對(duì)象保存在了堆當(dāng)中。

          將堆和棧進(jìn)行一下對(duì)比:

          我們定義一個(gè)基本數(shù)據(jù)類型在棧中,應(yīng)該是以下的情況。

          上面的栗子就是定義了

          const a = 1const b = 2const c = 3const d = 4

          以上看起來(lái)是挺簡(jiǎn)單的一對(duì)一的形式儲(chǔ)存的。

          我們同樣來(lái)定義一下引用數(shù)據(jù)類型:

          const e = new Object()const f = ee.name = 'orange'

          以上代碼的存儲(chǔ)形式應(yīng)該如下:

          解釋一下上面圖片,左邊是一個(gè)棧,定義了一個(gè)引用數(shù)據(jù)類型,名稱叫做e,然后e在堆中開(kāi)辟了一個(gè)空間,有了一個(gè)地址,所以棧中的值就是這個(gè)空間的地址,然后又定義了一個(gè)引用數(shù)據(jù)類型,叫做f,把e賦值給f,這個(gè)時(shí)候值也是指向了這個(gè)空間的地址。最后給這個(gè)空間加了一個(gè)值,name:'orange'。最后就是ef其實(shí)是一個(gè)東西了。

          如果你沒(méi)有聽(tīng)清楚,沒(méi)搞明白,我來(lái)給你簡(jiǎn)單翻譯一下!

          假如你有一個(gè)空地,這個(gè)空地就是棧,然后這個(gè)空地上面來(lái)了a,b,c,d,e,f這幾個(gè)人(也就是名稱),然后呢a.b,c,d這四個(gè)人都是本地人,就在這個(gè)空地上修了個(gè)房間(也就是值),分別放了1,2,3,4。但是呢,e,f他不是本地人,人家有自己房子,跑到你的地方來(lái)了,他也修了東西,但是只是一個(gè)門,這個(gè)地址(也就是值)是他家(也就是堆),剛好fe是一家人,所以就用了e的門,也通向了這個(gè)家(堆)。

          不知道以上的解釋清楚了沒(méi),在不清楚的話,私信我,我去做個(gè)動(dòng)畫給你描述清楚!!!!

          在代碼中,我們是怎么判斷數(shù)據(jù)類型的,數(shù)據(jù)類型怎么轉(zhuǎn)化呢?

          我們有很多方法可以用來(lái)判斷。

          • typeof 基本只能判斷出基本數(shù)據(jù)類型,引用類型除了function外,都是 object 。

          const typeOf = () => {    // 基本類型    console.log(typeof(1)); //number    console.log(typeof('1')); //string    console.log(typeof(null)); //object    console.log(typeof(false)); //boolean    console.log(typeof(undefined)); //undefined    console.log(typeof(Symbol())); //symbol    console.log(typeof(NaN)); //number    // 引用類型    console.log(typeof {}); //object    console.log(typeof []); //object    console.log(typeof Error('1')); //object    function A() {}    console.log(typeof A); //function}typeOf()
          • instanceof 返回是truefalse,只能對(duì)引用數(shù)據(jù)類型進(jìn)行判斷。

          const instanceOf = () => {    // 基本類型    console.log(1 instanceof Number); //false    console.log("1" instanceof String); //false    console.log(true instanceof Boolean); //false    console.log(null instanceof Object); //false    console.log(undefined instanceof Object); //false    console.log(Symbol() instanceof Symbol); //false    // 引用類型    console.log({} instanceof Object); //true    console.log([] instanceof Array); //true    console.log(Error('1') instanceof Error); //true    function A() {}    console.log(A instanceof Function); //true}instanceOf()
          • Object.prototype.toString.call() 返回是一個(gè)[object xxx]的字符串,可以通過(guò)slice(8, -1)的方式來(lái)獲取完整的數(shù)據(jù)類型。

          const stringCall = () => {    // 基本類型    console.log(Object.prototype.toString.call(1)); //[object Number]    console.log(Object.prototype.toString.call(1).slice(8, -1)) //Number    console.log(Object.prototype.toString.call('1').slice(8, -1)) //String    console.log(Object.prototype.toString.call(true).slice(8, -1)) //Boolean    console.log(Object.prototype.toString.call(null).slice(8, -1)) //Null    console.log(Object.prototype.toString.call(undefined).slice(8, -1)) //Undefined    console.log(Object.prototype.toString.call(NaN).slice(8, -1)) //Number    console.log(Object.prototype.toString.call(Symbol()).slice(8, -1)) //Symbol    // 引用數(shù)據(jù)類型    console.log(Object.prototype.toString.call({}).slice(8, -1)) //Object    console.log(Object.prototype.toString.call([]).slice(8, -1)) //Array    console.log(Object.prototype.toString.call(Error('1')).slice(8, -1)) //Error    function A() {}    console.log(Object.prototype.toString.call(A).slice(8, -1)) //Function}stringCall()
          • 即可以判斷基本數(shù)據(jù)類型,也可以判斷引用數(shù)據(jù)類型,由于nullundefined沒(méi)有constructor,所以判斷不了,同時(shí)由于constructor可以改變,所以此方法如果改寫了constructor,就不準(zhǔn)確了。

          const constructorName = () => {    // 基本數(shù)據(jù)類型    console.log((1).constructor.name); //Number    console.log('1'.constructor.name); //String    // console.log((null).constructor.name); //報(bào)錯(cuò) Cannot read properties of null (reading 'constructor')    // console.log((undefined).constructor.name); //報(bào)錯(cuò) Cannot read properties of undefined (reading 'constructor')    console.log((true).constructor.name); //Boolean    console.log((NaN).constructor.name); //Number    console.log((Symbol()).constructor.name); //Symbol    // 引用數(shù)據(jù)類型    console.log(({}).constructor.name); //Object    console.log(([]).constructor.name); //Array    console.log((Error('1')).constructor.name); //Error    function A() {}    console.log((A).constructor.name); //Function}constructorName()
          • 可以判斷基本數(shù)據(jù)類型,也可以判斷引用數(shù)據(jù)類型,由于nullundefined沒(méi)有constructor,所以判斷不了。因?yàn)閏onstructor.toString().indexOf()也是用到了constructor,所以如果該寫了constructor后,就不準(zhǔn)確了。

          const toStringIndexOf = () => {    // 基本數(shù)據(jù)類型    console.log((1).constructor.toString()); //function Number() { [native code] }    console.log((1).constructor.toString().indexOf('Number') > -1) //true    console.log(('1').constructor.toString().indexOf('String') > -1) //true    // console.log((null).constructor.toString().indexOf('Null') > -1) //報(bào)錯(cuò),Cannot read properties of null (reading 'constructor')    // console.log((undefined).constructor.toString().indexOf('Undefined') > -1) //報(bào)錯(cuò), Cannot read properties of undefined (reading 'constructor')    console.log((Symbol()).constructor.toString().indexOf('Symbol') > -1) //true    console.log((true).constructor.toString().indexOf('Boolean') > -1) //true    console.log((NaN).constructor.toString().indexOf('Number') > -1) //true    // 引用數(shù)據(jù)類型    console.log(({}).constructor.toString().indexOf('Object') > -1) //true    console.log(([]).constructor.toString().indexOf('Array') > -1) //true    console.log((Error('1')).constructor.toString().indexOf('Error') > -1) //true    function A() {}    console.log((A).constructor.toString().indexOf('Function') > -1) //true}toStringIndexOf()
          • 改寫constructor

          const num = new Number(1)console.log((num).constructor.name); //Numberconsole.log((num).constructor.toString().indexOf('Number') > -1) //truefunction A() {}num.constructor = Aconsole.log((A).constructor.name); //Functionconsole.log((A).constructor.toString().indexOf('Function') > -1) //true

          這里說(shuō)的類型轉(zhuǎn)換是字符串和數(shù)值之間的轉(zhuǎn)換。

          • toString(),18.toString()

          • String(),String(18)

          • 拼接,18+''

          以上三種辦法都可以將數(shù)值類型轉(zhuǎn)化為字符串類型。

          • Number(),Number('18')

          • parseInt(),parseInt('18')

          • parseFloat(),parseFloat('18')

          • +或-,-'18'或者+'18'

          以上四種方法都可以將字符串轉(zhuǎn)化為字符串。

          我們?cè)诙x的時(shí)候,分為常量與變量,一般可以使用var,const,let來(lái)定義。

          es5的時(shí)候我們都是用var來(lái)定義常量與變量。但是很容易造成變量提升或者變量的全局污染。所以我們現(xiàn)在很少使用這個(gè)了。

          es6的方法,使用const來(lái)定義常量與變量。比如定義基礎(chǔ)數(shù)據(jù)類型的常量,const a=1,這個(gè)就是定義一個(gè)a 的常量,不可以更改。這里的不可以更改指的是基礎(chǔ)數(shù)據(jù)類型不能更改,引用數(shù)據(jù)類型不能更改其類型,但是可以更改其值。

          const a = 1const b = { name:'orange', age:18}// 修改aa = 2 //這個(gè)肯定要報(bào)錯(cuò)的b.age = 20 //這個(gè)可以更改

          這也是es6的語(yǔ)法,使用let定義變量,不管是基礎(chǔ)數(shù)據(jù)類型還是引用數(shù)據(jù)類型都可以,同時(shí)可以更改。

          let a = 1let b = {  name:'orange',  age:18}// 修改aa = 2b.age = 20b = 3

          主站蜘蛛池模板: 久久精品无码一区二区三区不卡 | 一区免费在线观看| 奇米精品一区二区三区在| 亚洲欧美日韩一区二区三区| 久久久久人妻精品一区蜜桃 | 一区二区三区无码被窝影院| 国产一区二区三区在线视頻| 精品人妻无码一区二区色欲产成人 | 国产无吗一区二区三区在线欢 | 一区二区三区国产精品| 高清一区二区在线观看| 精品国产AV无码一区二区三区| 日韩精品无码免费一区二区三区| 一区二区三区内射美女毛片| 波多野结衣精品一区二区三区 | V一区无码内射国产| 视频精品一区二区三区| 国产精品乱码一区二区三| 亚洲精品日韩一区二区小说| 91久久精品午夜一区二区| 亚洲视频一区网站| 亚洲一区二区三区在线观看蜜桃| 一区二区中文字幕| 日韩精品一区二区三区老鸭窝| 2020天堂中文字幕一区在线观| 亚洲美女视频一区二区三区| 精品日韩亚洲AV无码一区二区三区| 无码乱人伦一区二区亚洲一| 麻豆亚洲av熟女国产一区二| 亚洲国产福利精品一区二区| 国产成人一区二区三中文| 国产精品一区二区毛卡片| 精品免费AV一区二区三区| 国产一区二区精品尤物| 无码一区二区三区视频| 伊人久久精品一区二区三区| 99国产精品欧美一区二区三区| 精品一区精品二区| 亚洲国产综合无码一区| 无码国产伦一区二区三区视频| 亚洲日本久久一区二区va|