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 激情综合欧美,欧美成人欧美激情欧美风情,国产一区不卡

          整合營銷服務商

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

          免費咨詢熱線:

          前端開發(fā)中實用Javascript代碼片段

          . Randoms

          在下面的代碼片段,將展示了兩種生成隨機數(shù)或從數(shù)組中獲取隨機元素的方法。

          生成指定范圍的隨機數(shù):

          const getRandoms = (min, max) => {
              return Math.round(Math.random() * (max - min) + min);
          };
          console.log(getRandoms(10, 100));

          隨機獲取數(shù)組中的一項元素:

          const arrayCities = ["北京", "上海", "廣州", "深圳", "天津", "重慶"];
          const getRadmonItem = (array) =>
              array[Math.floor(Math.random() * array.length)];
          console.log("隨機城市:", getRadmonItem(arrayCities));

          2. 數(shù)字加密

          下面代碼片段展示了使用數(shù)字作為密鑰對數(shù)字進行加密解密操作,使用異或運算 XOR(^) 來實現(xiàn),展示一個簡單的加密解密過程。

          function Encrypt(secretNumber) {
              const _secretNumber = secretNumber;
              const encrypted = (encryptNumber) => encryptNumber ^ _secretNumber;
              const decrypted = (encryptedContent) => encryptedContent ^ _secretNumber;
              return {
                  encrypted,
                  decrypted,
              };
          }
          
          const encryptHelper = new Encrypt(202108);
          const encryptNumber = 20210901;
          
          // 加密
          const encrypted = encryptHelper.encrypted(encryptNumber);
          console.log(encrypted); // 20410793
          // 解密
          const decrypted = encryptHelper.decrypted(encrypted);
          console.log(decrypted); // 20210901

          3. 設置必選參數(shù)

          通常定義的一個函數(shù)的時候,對于可預期的參數(shù)可以使用默認值,而對于必要參數(shù)希望給出友好的提示,下面代碼片段展示一個必填參數(shù)的定義:

          const mandatory = (name) => {
              throw new Error(`調用錯誤,必須傳遞參數(shù):${name}`);
          };
          
          const printTitle = (title = mandatory("標題")) => {
              console.log(`打印文章標題:${title}`);
          };
          
          printTitle("JavaScript"); // 打印文章標題:JavaScript
          printTitle(); // Error: 調用錯誤,必須傳遞參數(shù):標題

          4. 動態(tài)創(chuàng)建函數(shù)

          動態(tài)創(chuàng)建函數(shù)是一種基于字符串動態(tài)生成函數(shù)的動態(tài)機制,通常用于動態(tài)表單的規(guī)則驗證中,第一個形參是用逗號分隔的實參列表,最后一個形參是函數(shù)體的邏輯代碼:

          const multiplyFn = new Function(
              "num1",
              "num2",
              "num3",
              "return num1*num2*num3"
          );
          console.log(multiplyFn(1, 2, 3)); // 6
          // ES6
          const multiply = new Function(
              "...numbers",
              "return numbers.reduce((acc,current) => acc * current, 1)"
          );
          console.log(multiply(1, 2, 3)); // 6

          5. 清空數(shù)組

          簡單的數(shù)組清空方式是改變其 length ,如下代碼片段:

          const arrayCities = ["北京", "上海", "廣州", "深圳", "天津", "重慶"];
          console.log(arrayCities); // [ '北京', '上海', '廣州', '深圳', '天津', '重慶' ]
          // 清空
          arrayCities.length = 0;
          console.log(arrayCities); // []

          6. 四舍五入

          小數(shù)點的處理,是數(shù)字常見的操作,主要涉及的方法是 toFixed 和 Math ,下面代碼片段展示常用的方法。

          由于 JavaScript 精度原因導致小數(shù)點相加的時候與預期有偏差,下面代碼片段展示了四舍五入常見的方法和小數(shù)相加的處理:

          const pi = 3.14159265359;
          console.log(pi.toFixed(3)); // 3.142
          
          const sumFloat = 0.1 + 0.2;
          console.log(sumFloat); // 0.30000000000000004
          console.log(sumFloat.toFixed(1)); // 0.3

          Math 方法中常見用于取整的包括:Math.round() 舍入到最接近的整數(shù), Math.floor() 向下舍入, Math.ceil() 向上舍入。最接近數(shù)學意義上四舍五入的方法就只有 toFixed ,如下代碼片段所示:

          const pi = 3.14159265359;
          console.log(pi.toFixed(0)); // 3
          console.log(Math.floor(pi)); // 3
          console.log(Math.ceil(pi)); // 4
          console.log(Math.round(pi)); // 3
          
          const num2 = 3.5;
          console.log(num2.toFixed(0)); // 4
          console.log(Math.floor(num2)); // 3
          console.log(Math.ceil(num2)); // 4
          console.log(Math.round(num2)); // 4

          7. 數(shù)組項的對象解構

          數(shù)組項的對象解構在解析 CSV 格式的數(shù)據非常實用,請看下面的代碼片段:

          const csvAddressDetail = "廣東省,深圳市,南山區(qū),科技園北區(qū)科技園大廈";
          
          const arrayAddress = csvAddressDetail.split(",");
          const { 0: province, 1: city, 2: district, 3: address } = arrayAddress;
          
          console.log(province, city, district, address);  // 廣東省 深圳市 南山區(qū) 科技園北區(qū)科技園大廈

          當然還可以跳過一些索引,如下:

          const arrayAddress = csvAddressDetail.split(",");
          const { 1: city, 3: address } = arrayAddress;
          
          console.log(city, address); // 深圳市 科技園北區(qū)科技園大廈

          8. 變量數(shù)字轉換

          將值轉換為數(shù)字,特別是將字符串轉換為數(shù)字,是經常會用到的,有許多方法可以進行轉換,這里展示一些常見的方式:

          console.log(+"15"); // 15
          console.log(+true); // 1
          console.log(+false); // 0
          console.log(+null); // 0
          console.log(Number("15")); // 15
          console.log(parseInt("15", 10)); // 15
          console.log(parseFloat("15.42")); // 15.42

          9. 獲取文件擴展名

          下面的代碼片段展示了通過一個完整路徑或者文件名稱獲取文件相應的擴展名稱方法:

          const arrayFiles = [
              "/attach/pics/logo.png",
              "logo.svg",
              "template.xlsx",
              "template.doc",
          ];
          const getExtName = (fullpath) => {
              const root = fullpath.split(/[\\/]/).pop();
              const pos = root.lastIndexOf(".");
              return root === "" || pos < 1 ? "" : root.slice(pos + 1);
          };
          
          const arrayExtNames = arrayFiles.map((item) => getExtName(item));
          console.log(arrayExtNames); // [ 'png', 'svg', 'xlsx', 'doc' ]

          10. 普通函數(shù)定義

          假設需要定義一個函數(shù),給定一些參數(shù)和函數(shù),然后使用這些參數(shù)執(zhí)行這個函數(shù),代碼片段展示一個計算器的功能及擴展運算符的使用,如下代碼:


          者 | Minko Gechev

          譯者 | 王強

          策劃 | 蔡芳芳

          轉發(fā)鏈接:https://web.dev/commonjs-larger-bundles/

          先,通知一個事情:經過考慮,決定創(chuàng)建一個QQ群,方便交流學習,比較方便加入,包括發(fā)布一些文件以及支持遠程協(xié)助等等,群號:603559164,歡迎大家加入。

          這節(jié)課,將繼續(xù)修改四則運算器,改成讓用戶輸入計算結果,然后程序給出判斷結果是否正確。

          上節(jié)課的作業(yè)

          輸入一個分數(shù),根據分數(shù)進行判斷,大于等于90分屏幕輸出best,大于等于80分屏幕輸出good,大于等于60分屏幕輸出pass,其他屏幕輸出fail

          這是一個經典的if分支語句題目

          正確的結果類似如下:

          score=input("please input score:")

          if score>=90 :

          print "best"

          elif score>=80 :

          print "good"

          elif score>=60 :

          print "pass"

          else :

          print "fail"

          運行結果如下:

          增加注釋行

          到目前為止,已經寫了不少程序文件了,add.py,subtract.py,cala.py,score.py

          程序文件多了之后,會發(fā)現(xiàn)如何快速記起程序的內容和目的,會有點困難,特別是當別人來看你的代碼的時候

          為了幫助我們自己和別人,我們需要給程序增加一些描述文字和說明,這就是注釋

          注釋的格式是這樣的: #注釋內容

          在行首如果是#開頭的表示這一行代碼是注釋,將不會被程序執(zhí)行,即使#后面跟著的是代碼

          我們將最早寫的add.py拿出來,當時刪掉了一行代碼,其實也可以用注釋來完成:

          num1=input("num1:")

          #print num1

          num2=input("num2:")

          num3=num1+num2

          print num1,"+",num2,"=",num3

          這樣第2行代碼就不會執(zhí)行

          我們打開score.py,在最前面增加說明:

          這樣,每新做一個程序,就在程序最前面增加注釋說明這個程序的目的是什么,作者是誰,什么時候創(chuàng)建的,方便其他人查看和了解

          再次執(zhí)行程序,會發(fā)現(xiàn)提示錯誤如下:

          這是因為增加了中文的原因,解決的辦法是指定文件的編碼方式:

          在文件第一行增加如下代碼:

          #coding=utf-8

          再次執(zhí)行代碼,發(fā)現(xiàn)正常了

          四則運算測試器修改代碼

          接下來,開始改造之前寫的四則運算器程序,改成讓用戶輸入計算結果,然后程序給出判斷結果是否正確。

          首先,打開cala.py,另存為cala_test.py

          然后在程序開始添加注釋說明:

          #coding=utf-8

          #四則運算測試器程序

          #輸入2個數(shù)字,1個操作符,1個計算結果,判斷是否正確

          #作者:學哥 時間:2016/12/8

          很明顯,需要增加一個輸入,讓用戶輸入計算結果,然后判斷計算結果num3和輸入的結果是否一致,輸出結果

          在print 這行之前,增加下列代碼:

          result=input("your result:")

          if num3==result :

          print "right"

          else :

          print "error"

          然后把原來的print這行注釋掉

          執(zhí)行結果如下:

          大家在測試程序的時候,除了按照理想或者預期的數(shù)據進行輸入之外,還要輸入一些非預期的數(shù)據,這樣才能夠完整的測試代碼是否完美

          比如上面的程序,如果在預期輸入數(shù)字的地方,輸入了一個字符a,或者輸入了帶引號的"a",或者在輸入操作符的地方輸入一個數(shù)字

          看看會有什么結果,如果發(fā)現(xiàn)錯誤,看看應該如何修改,進行限制輸入,如果不知道的話,可以自己去網上搜索,學會自己尋找答案

          因為這個并非我們課程的重點,這里就不講解了。

          輸入數(shù)值改為程序生成隨機數(shù)

          需要輸入數(shù)值和操作符太麻煩了,能不能讓程序自己生成數(shù)值和操作符,我們只要輸入結果,看看我們做對了沒有,那多好

          那么,就來做100以內的加減乘除測試題目吧

          首先,將上面的文件另存為cala_test_rand.py

          其次,在注釋的4行下面,將前面3行輸入代碼都刪除掉

          num1=input("num1")

          operate=input("your operate:")

          num2=input("num2:")

          然后在程序開始這個地方增加以下代碼:

          import random

          num1=random.randint(1,99)

          num2=random.randint(1,99)

          operateint=random.randint(1,4)

          if operateint==1:

          operate="+"

          elif operateint==2:

          operate="-"

          elif operateint==3:

          operate="*"

          else:

          operate="/"

          print num1,operate,num2,"="

          完整代碼如下:

          結果如下:

          注意測試的時候,除法是進行整除,小數(shù)位舍棄

          代碼說明

          import random 引入一個模塊random

          random.randint(1,99) 生成一個1到99范圍之內的隨機整數(shù)

          random.randint(1,4) 生成一個1到4范圍之內的隨機整數(shù)

          然后根據1到4,將運算符設置為加減乘除

          后續(xù)代碼不變

          關于模塊和函數(shù),后續(xù)課程會詳細說明,這里只要知道是什么就可以了


          課后作業(yè)

          1. 輸入數(shù)字1-7判斷是星期幾

          2. 收集星座具體的日期范圍,考慮一下如何實現(xiàn)輸入一個月和日,輸出所屬星座

          往期教程

          0001 零基礎的小白能學會編程嗎?

          0002 真的嗎,700元的電腦可以學會編程?

          0003 十分鐘組裝一臺電腦開始編程

          0004 如何編寫人生的第一行代碼helloworld

          0005 鍵盤打字如何練成像黑客一樣的飛速

          0006 編程入門python語言之加法計算器

          0007 編程入門python語言之四則運算器

          第一部分前7課小結和課程規(guī)劃說明及微信群主招募

          因為教程是系列教程,前后關聯(lián)性非常強,請大家按照微信公眾號的發(fā)布時間先后次序進行閱讀。

          微信公眾號里面直接輸入序號可以查看該序號課程,例如輸入0001可以查看【0001 零基礎的小白能學會編程嗎?】

          作者簡介

          學哥,二十年編程經驗,歷任程序員,資深程序員,技術經理,項目經理,產品經理,系統(tǒng)架構師,IT總監(jiān)。愛好篆刻,閱讀,美食。

          微信號簡介

          每天半小時零基礎學編程。大人可以學,小孩也可以學。練打字,用軟件,寫文檔,做網站,做App,編游戲,數(shù)據庫,玩硬件,寫程序,3D打印,無人機,機器人。

          html,css,javascript,python,php,java,swift,mysql,android,ios,raspberry pi,scratch. 微信公眾號搜索:零基礎學編程。

          QQ群簡介

          歡迎大家加入QQ群 603559164 零基礎學編程,交流學習,共同進步。


          主站蜘蛛池模板: 亚洲AV无码一区二区三区网址| 无码人妻精品一区二区三区99不卡| 国产免费一区二区三区不卡| 精品福利一区二区三| 中文字幕不卡一区| ...91久久精品一区二区三区| 亚洲一区二区三区国产精华液| 日美欧韩一区二去三区| 波多野结衣免费一区视频 | 午夜DV内射一区二区| 濑亚美莉在线视频一区| 色偷偷久久一区二区三区| 一区二区三区在线观看中文字幕| 国99精品无码一区二区三区| 日韩一区二区精品观看| 亚洲Av永久无码精品一区二区| 亚洲AV无码一区东京热久久 | 天堂Aⅴ无码一区二区三区| 日本一区二区三区不卡视频| 99精品国产一区二区三区不卡| 好爽毛片一区二区三区四 | 狠狠综合久久av一区二区| 99热门精品一区二区三区无码| 亚洲av福利无码无一区二区| 成人一区二区免费视频| 中文字幕亚洲一区| 国产亚洲一区二区三区在线| 久久免费精品一区二区| 日韩AV无码一区二区三区不卡毛片 | 国产精品免费视频一区| 久久精品无码一区二区三区不卡 | 人妻视频一区二区三区免费| 精品香蕉一区二区三区| 国产精品乱码一区二区三| 欧洲精品一区二区三区在线观看 | 精品国产一区二区二三区在线观看| 欧美av色香蕉一区二区蜜桃小说| 国产综合精品一区二区| 中文字幕一区二区视频| 末成年女A∨片一区二区| 风间由美在线亚洲一区|