iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 26
0

終於來到鐵人賽最後的一個周末啦
偏偏現在又來到最重要的章節

那麼就不浪費看官們的時間
不浪費我的假日時間

文章介紹完馬上開始我們今天著正篇吧!!


工程師是最容易禍害一千年的職業之一
怎麼說呢
你今天寫了一個爛東西

運氣差一點可修的時間很少
別人要維修你的專案,必須先搞懂這片代碼海

運氣好一點可修的時間很多
乾脆整個專案重開,按照畫面有的功能重新寫一次

為了珍惜自己的業,與別人的生命
請不要寫糙code
可不可以不要寫糙 code 系列


python的崛起其實整個很神奇
但不可否認他的套件與別人寫好的東西真的很好用
java要開個檔案讀寫要寫個一大堆東西
python卻只需要短短幾行

初學者Python的應用實作 系列


python最重要的功能之一
(我都會寫一隻去爬伊莉,然後找maga的影片載點)
是的,不管你眼睛業障中看到了甚麼,這東西真的方便好用

Scrapy爬蟲與資料處理30天筆記 系列


文章簡單的介紹完了,我們開始js基本型別與運算子順序吧!!

part1 - js的型別

js有一個原生的方法typeof()
會出現以下的東西,我們稱作js的型別

  1. number (數字)

    • 可以進行運算
    • 當空時印出NaN
  2. boolean(true/false)

    • js的boolean各種花樣,丟甚麼東西出來都是true
    • 但只有底下這六種出來為false
    Boolean(false) // false
    Boolean(undefined) // false
    Boolean(null) // false
    Boolean(0) // false
    Boolean(NaN) // false
    Boolean('') // false
    
  3. string(字符串)

    • string沒什麼好說的,但對於字串的運算有比較特別的地方
    • 在運算中js會自動去偵測如果這個字串可以轉數字那麼在+以外的運算都會自動轉數字去算,如果無法則直接清空這個變數
    var a = "2"
    var b = 5
    console.log(a+b)//25
    console.log(a-b)//-3
    a="a"
    console.log(a+b)//NaN
    
  4. object(對象)

    • 在物件導向語言中任何東西都是一個Object
    • js中並沒有Array這個型態,如果
    typeof([1,2,3])//object
    
    • array即為一個物件預設key值為[0~array.length-1]
    • 為一個key/value的集合所組成
      • value可為方法
      • key值可為number、string
      • 但一般不會使用number為索引、浪費效能與不方便遍歷
      var arrayVal = [1,2,3]
      //等同於
      var arrayVal2 = {
          1:1,
          2:2,
          3:3
      }
      //一般Object
      var obj={
          person:{
              gender: '男',
              position: 'coder',
              info: {
                  weight: 90,
                  height : 200
              },
              dothing: function(time){
                  if(time==1700){
                      下班();
                  }
              }
          }
      }
      
  5. function(函數)

    • 只要這個字串中含有function()那麼typeof(var)便會出現function
    • 含有上面關鍵字的字串於變數名後加上()即可執行
    var fn = function(){
        console.log(1+2)
    }
    console.log(fn())
    //3
    console.log(fn)
    /*
        ƒ (){
            console.log(1+2)
        }
    */
    
  6. undefined(未定義)

    • 當記憶體切出後若一個變數沒有給值,undefined變為這個變數的預設值
    • 注意:不要給一個變數"undefined"會出現不可預測的錯誤
    • 而如果把一個變數賦值之後在清掉為null

part2 - js的運算子

在JS中有兩件事情決定了運算子的優先順序

  1. 優先性

    • 如同先乘除後加減,JS中也有自己一連串的優先性
    • 這邊直接附上表格(運算子優先序),因此不贅述
  2. 相依性

    • 當所有運算子優先順序都一樣時,由相依性判斷先後順序
    • 需要注意的是相依性有
      • 左到右稱為左相依性
      • 右到左稱為右相依性

比較需要注意的是右相依性的規則

  • 賦值運算(Assignment)
    var a = b = c = 5
    console.log(a)//5
    console.log(b)//5
    console.log(c)//5
    
    • 因為賦值屬性是由右至左,因此運算方式是將5賦值給c=>b=>a

其他都是偏考試一般不會在真實被實現的方法


上一篇
三本柱大混戰 # 25 今天不廢話,直接來用白話文說說文謅謅的js知識吧
下一篇
三本柱大混戰 # 27 JS不能多載?沒關係我們自己寫
系列文
大家都在鐵人賽跑JS,這條鹹魚不只翻身還被煎得有點焦了,我們來點實務吧31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言