javascript類型系統之Math

来源:http://www.cnblogs.com/xiaohuochai/archive/2016/01/06/5104717.html
-Advertisement-
Play Games

[1]屬性 [2]方法 [3]tips


目錄
[1]屬性 [2]方法 [3]tips

前面的話

  和其他對象不同,Math對象是一個靜態對象,而不是構造函數。實際上,Math只是一個由Javascript設置的對象命名空間,用於存儲數學函數

 

屬性

Math.E             自然對數的底數,即常量e的值(約等於2.718)
Math.PI            派的值(約等於3.14159)
console.log(Math.E);//2.718281828459045
console.log(Math.PI);//3.141592653589793

 

Math.LN2           2的自然對數(約等於0.693)
Math.LN10          10的自然對數(約等於2.302)
Math.LOG2E         以2為底e的對數(約等於1.414)
Math.LOG10E        以10為底e的對數(約等於0.434)
console.log(Math.LN2);//0.6931471805599453    
console.log(Math.LN10);//2.302585092994046
console.log(Math.LOG2E);//1.4426950408889634
console.log(Math.LOG10E);//0.4342944819032518

 

Math.SQRT2         2的平方根(約等於1.414)
Math.SQRT1_2       1/2的平方根,即2的平方根的倒數(約等於0.707)
console.log(Math.SQRT2);//1.4142135623730951
console.log(Math.SQRT1_2);//0.7071067811865476

 

方法

  這些方法都涉及到Number()隱式類型轉換;若超出方法範圍,將返回NaN

Math.min()             返回一組數字中的最小值
Math.max()             返回一組數字中的最大值
console.log(Math.min(1,2,3));//1
console.log(Math.max(1,2,3));//3

 

Math.ceil(num)         向上舍入為整數
Math.floor(num)        向下舍入為整數
Math.round(num)        四捨五入為整數
console.log(Math.ceil(12.6));//13
console.log(Math.floor(12.6));//12
console.log(Math.round(12.6));//13

 

Math.abs(num)         返回num的絕對值
Math.random()         返回大於等於0小於1的一個隨機數
console.log(Math.abs(-10));//10
console.log(Math.random());//0.741887615993619

 

Math.exp(num)          返回Math.E的num次冪
Math.log(num)          返回num的自然對數
Math.sqrt(num)         返回num的平方根(x必須是大於等於0的數)
Math.pow(num,power)    返回num的power次冪
console.log(Math.exp(0));//1
console.log(Math.log(10));//2.302585092994046
console.log(Math.sqrt(100));//10
console.log(Math.pow(10,2));//100

 

Math.sin(x)            返回x的正弦值
Math.cos(x)            返回x的餘弦值
Math.tan(x)            返回x的正切值    
Math.asin(x)           返回x的反正弦值(x必須是-1到1之間的數)
Math.acos(x)           返回x的反餘弦值(x必須是-1到1之間的數)
Math.atan(x)           返回x的反正切值
Math.atan2(y,x)        返回y/x的反正切值
console.log(Math.sin(30*Math.PI/180));//0.49999999999999994    
console.log(Math.cos(60*Math.PI/180));//0.5000000000000001
console.log(Math.tan(45*Math.PI/180));//0.9999999999999999    
console.log(Math.asin(1)*180/Math.PI);//90
console.log(Math.acos(1)*180/Math.PI);//0
console.log(Math.atan(1)*180/Math.PI);//45
console.log(Math.atan2(1,1)*180/Math.PI);//45

 

tips

[tips1]找到數組中的最大或最小值

var values = [1,2,3,4,5,6,7,8];
var max = Math.max.apply(Math,values);//8

[tips2]從某個整數範圍內隨機選擇一個值

value = Math.floor(Math.random()*可能值的總數 + 第一個可能的值)

[tips3]通過最小值和最大值隨機選擇一個值

function selectFrom(lowerValue,upperValue){
    var choices = upperValue - lowerValue + 1;
    return Math.floor(Math.random()*choices + lowerValue);
}
var num = selectFrom(2,10);
console.log(num);

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 第六章 Android的Drawable Drawable的優點:使用簡單,比自定義view的成本要低;非圖片類型的Drawable占用空間小,有利於減小APK安裝包的大小。 6.1Drawable簡介 Drawable有很多種,他們都表示一種圖像的概念,Drawable常被用來...
  • 一、部分快捷鍵。這個在網上有一大堆,不過筆者認為,還是應該看個人習慣和使用環境吧。如果用得順手,那就是快捷鍵,如果用得不順手,那應該稱其為“輔助鍵”吧。下麵介紹幾個常用的快捷鍵:1.截圖。屏幕部分畫面:command+ Shift + 4保存格式為(.png),路徑是在桌面上面,所以截圖完就在桌面上...
  • 在控制器裡面想調用一個視圖的子視圖的代理方法很簡單1.找到子視圖的協議和代理屬性2.給你想調用的控制項添加代理屬性,遵守的協議和子視圖的一樣3.重寫代理屬性的set方法
  • 拿到設計圖使用markdown標好尺寸、字體大小和顏色等,但是是什麼字體我還不知道如何判斷,估計還得問設計師吧!這是一張手機端的html5網頁,一般考慮適應webkit內核,還有就是需要設置meta標記防止縮放、自適應等,代碼如下:寬度為設備寬度,初始化縮放比為1,最小縮放比為1,不能縮放。由於看到...
  • [1]引用 [2]特性 [3]屬性 [4]方法
  • Senna.js 是一個速度超快的單頁應用程式引擎,提供了幾個低級別的API,可以幫助你打造現代化的基於 Web 的應用程式。更重要的是,搜索引擎蜘蛛應該能夠索引相同的內容。通過使用 HTML5 History API,我們可以操縱使用 pushState,replaceState 和 popSta...
  • 純靜態頁面,不依賴伺服器端腳本,從一個靜態頁面傳遞給另一個靜態頁面,大致有這三種實現方案:1.通過url ?後面的參數傳 www.xxx.com/xxx.html?key=value&&key2=value2通過js,locaton.search獲取2.通過cookiejs設置cookie,另一個頁...
  • 樣式表有三種方式:內嵌樣式(inline Style) :是寫在Tag裡面的,內嵌樣式只對所有的Tag有效。 (也稱作“內聯樣式”)內部樣式(internal Style Sheet):是寫在HTML的裡面的,內部樣式只對所在的網頁有效。外部樣式表(External Style Sheet):如果很...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...