日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

你不一定知道的几个前端小知识

發布時間:2025/3/20 HTML 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 你不一定知道的几个前端小知识 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1

大家都知道js在進行小數運算時會有丟失精度問題(其他語言也是),比如:

0.1+0.2 //0.30000000000000004

有一種比較快捷的方式是先把小數乘以10的整數倍,然后再運算,如:

(0.1*10+0.2*10)/10 //0.3

但是這種方式也不是100%準確的,乘以整百也可能精度丟失,比如:

2177.74*100 //217773.99999999997

所以常用的幾種處理方式有:

  • 把小數轉化為字符串,拆分整數部分和小數部分分別計算,然后再把結果進行拼接;
  • 先乘10的整數倍,然后再用toFixed進行四舍五入,這樣能保證結果還是準確的,如: (2177.74*100).toFixed(0); //217774
  • 直接運算,然后再用toFixed(或者Math.round)進行四舍五入,用于對計算結果不是很精確的場景。
  • 2

    <a>標簽的download屬性可以用來設置用戶下載后的文件名稱,如:

    <a href="xxx.jpg" download="改名后的文件,jpg" />

    但是有一點要注意,文件不能跨域,如果下載文件處于和當前域不同的域,則改名失敗。

    3

    用instanceof來判斷跨iframe的對象類型時,會失效。比如我們在父頁面定義了一個數組:

    var arr = [1,2,3];

    然后在iframe中來訪問父頁面的arr對象:

    console.log(parent.arr); //[1,2,3] console.log(parent.arr instanceof Array); //false

    原因是不同的窗口各有一套自己的宿主對象,父窗口的Array構造器與子窗口的Array構造器并不是同一個,也就是說,arr是父窗口的Array實例,并不是子窗口的Array實例。

    這就是為什么我們判斷數組的時候要這么辦:

    Object.prototype.toString.call(parent.arr); //[object Array]

    4

    我們常用JSON.stringify方法來格式化json對象。其實這個stringify方法還接收第三個參數,支持把格式化后的字符串加一定縮進,比如:

    JSON.stringify(obj, undefined, 4);

    結果如下:

    {"num": 1234,"str": "字符串", "arr": [ 1, 2, 3, 4, 5, 6 ], "obj": { "name": "tom", "age": 10, "like": [ "a", "b" ] } }

    沒錯,上面是一個字符串。如果再用正則匹配一下,把屬性/值給加上不同的高亮顏色,那么一個簡單的json數據展示功能就有了:

    關于高亮函數的寫法,我在這篇文章中有詳細提到,有興趣可以去看看。

    5

    js的Date對象在進行日期計算時,會自動進行月份判斷以及平年閏年判斷,我們可以利用這一點來做一些小技巧。

    當我們想計算某個月份有多少天時,經常會先判斷當前月份有30天還是31天,還得判斷是否是閏年。 其實,計算2016年7月份有多少天,可以這么寫:

    new Date(2016, 7, 0).getDate(); //31

    js的月份從0開始,這里我們其實求的是8月0號,就會得到7月31號,也就拿到了31這個天數。

    同樣,想計算某天再過20天是幾月幾號,也不必進行自己判斷月份以及閏年。比如計算今天再過20天的日期:

    new Date(2017, 6, 20+20); //Wed Aug 09 2017 00:00:00 GMT+0800

    得到了8月9號??吹搅税?#xff0c;日期那里超過了31號,js會自動幫你計算到下個月。

    ?

    本文轉自呂大豹博客園博客,原文鏈接:http://www.cnblogs.com/lvdabao/p/5690173.html,如需轉載請自行聯系原作者

    總結

    以上是生活随笔為你收集整理的你不一定知道的几个前端小知识的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。