Javascript中的函数数学运算

1.Math函数与属性使用语法

Math.方法名(参数1,参数2,...);Math.属性;

说明

Math函数可以没有参数,比如Math.random()函数,或有多个参数,比如Math.max()函数

Math的相关函数全部为静态函数,应该直接调用。

JavaScript中Math函数和属性非常多,下面按功能分类分别列出常用的几种

Math三角函数与属性

  • Math.sin() -- 返回数字的正弦值
  • Math.cos() -- 返回数字的余弦值
  • Math.tan() -- 返回数字的正切值
  • Math.asin() -- 返回数字的反正弦值
  • Math.acos() -- 返回数字的反余弦值
  • Math.atan() -- 返回数字的反正切值
  • Math.atan2() -- 返回由x轴到点(x,y)的角度(以弧度为单位)
  • Math.PI 属性 -- 返回圆的周长与其直径的比值(圆周率π),约等于3.1415926

Math自然对数相关函数与属性

  • Math.exp() -- 返回E(自然对数的底数)的x次幂(指数)
  • Math.log() -- 返回数字的自然对数
  • Math.E 属性 -- 返回自然对数的底数,E约等于2.718
  • Math.LN2 属性 -- 返回2的自然对数loge2,约等于0.693
  • Math.LN10 属性 -- 返回10的自然对数loge2,约等于2.302
  • Math.LOG2E 属性 -- 返回以2为底的E的对数log2e,约等于1.442
  • Math.LOG10E 属性 -- 返回以10为底的E的对数log10e,越等于0.434

Math四舍五入类函数

  • Math.abs() -- 返回数字的绝对值
  • Math.ceil() -- 返回大于等于数字参数的最小整数(取整函数),对数字进行上舍入
  • Math.floor() -- 返回小于等于数字参数的最大整数,对数字进行下舍入
  • Math.round() -- 返回数字最接近的整数,四舍五入

Math最大最小类函数

  • Math.max() -- 返回数个数字中较大的值
  • Math.min() -- 返回数个数字中较小的值

Math幂指类函数

  • Math.pow() -- 返回底数的指定次幂
  • Math.sqrt() -- 返回数字的平方根
  • Math.SQRT1_2 属性 -- 返回0.5的平方根,或2的平方根除1,约等于0.707
  • Math.SQRT2 属性 -- 返回2的平方根,约等于1.414

Math随机数函数

  • Math.random() -- 返回0和1之间的伪随机数

2.1 介绍

  Number 对象,是数字对象,包含js中的整数、浮点数等等。

2.2 定义

var a = 1;
var b = 1.1;

2.3 静态属性

2.3.1 Number.MAX_VALUE :表示JS中最大的数字,约为 1.79e+308

2.3.2 Number.MIN_VALUE :表示JS中最小的数字,约为 5e-324

2.3.3 Number.NaN :返回NaN,表示非数字值,与任意其他数字不等,也包括NaN本身。应使用Number.isNaN() 来进行判断。

2.3.4 Number.NEGATIVE_INFINITY :返回 -Infinity ,表示负无穷。

2.3.5 Number.POSITIVE_INFINITY :返回 Infinity ,表示正无穷。进行计算的值大于Number.MAX_VALUE就返回 Infinity 。

2.4 静态方法

2.4.1 Number.isInteger(value) :判断参数是否为整数

参数:

①value {Number} :数字

返回值:

{Boolean} 返回参数是否为整数 。纯整数的字符串也返回false。

示例:

Number.isInteger(1); // => true 
Number.isInteger(1.1); // => false 
Number.isInteger('1'); // => false :纯整数的字符串也返回false
Number.isInteger('1.1'); // => false 
Number.isInteger('a'); // => false :非字符串返回false

2.4.2 Number.isNaN(value) :判断参数是否为NaN

参数:

①value {Object} :任意类型

返回值:

{Boolean} 返回参数是否为NaN 。

示例:

Number.isNaN(NaN); // => true 
Number.isNaN('NaN'); // => false :'NaN'字符串,并不为NaN 
Number.isNaN(1); // => false 
Number.isNaN('1'); // => false 

2.4.3 Number.parseFloat(value) :把参数转换为浮点数

参数:

①value {Number | NumberStr} :数字或者纯数字的字符串

返回值:

{Integer | Float} 返回整数或浮点数数值

示例:

Number.parseFloat(1); // => 1 :整数还是返回整数
Number.parseFloat(1.1); // => 1.1 
Number.parseFloat('1aaa'); // => 1 :字符串前面为数字的,只返回数字
Number.parseFloat('1.1aaa'); // => 1.1 
Number.parseFloat('a1'); // => NaN :非数字开头,返回NaN
Number.parseFloat('a'); // => NaN 

2.4.4 Number.parseInt(value) :把参数转换为整数

参数:

①value {Number | NumberStr} :数字或者纯数字的字符串

返回值:

{Integer} 返回整数数值

示例:

Number.parseInt(1); // => 1
Number.parseInt(1.1); // => 1 :浮点数返回整数
Number.parseInt('1aaa'); // => 1 :字符串前面为数字的,只返回数字
Number.parseInt('1.1aaa'); // => 1
Number.parseInt('a1'); // => NaN :非数字开头,返回NaN
Number.parseInt('a'); // => NaN 

2.5 实例方法

2.5.1 toExponential(value) :将一个数字转为指数类型,参数表示小数点后的位数

参数:

①value {Number} :表示小数点后的位数

返回值:

{String} 返回转换后的指数类型字符串

示例:

(123456789).toExponential(2); // => 1.23e+8 :小数点2位
(123456789).toExponential(5); // => 1.23457e+8 :小数点5位
(123456789).toExponential(10); // => 1.2345678900e+8 :小数点10位,不足位数用0补位

2.5.2 toFixed(value) :将一个数字转换为指定小数位数的字符串。不传入参数,就是没小数位。返回值为四舍五入

参数:

①value {Number} :表示小数点后的位数

返回值:

{String} 返回转换后的字符串;不够小数位以0填充;返回值为四舍五入后的值

示例:

console.log((1).toFixed(2)); // => 1.00 
console.log((1.2).toFixed(2)); // => 1.20 :不足位数,以0补位
console.log((1.277).toFixed(2)); // => 1.28 :进行了四舍五入

2.5.3 toString() :使用指定的进制,将一个数字转换为字符串。不传入参数,默认为十进制。

参数:

①value {Number} :表示进制数,取值范围:2到36

返回值:

{String} 转换后进制的字符串

示例:

(10).toString(); // => 10 :默认为十进制
(10).toString(2); // => 1010 :二进制
(10).toString(10); // => 10 :十进制
(10).toString(16); // => a :十六进制

  

2.6 应用场景

2.6.1 浮点数的加减乘除异常

说明:Js中的2个浮点数进行加减乘除运算,会返回异常的数值,如:0.2+0.7,返回0.899999999999。可以使用toFixed()方法,指定小数位。

示例:

console.log(0.2 + 0.7); // => 0.8999999999999999
console.log(0.7 - 0.5); // => 0.19999999999999996 
console.log(3.03 * 10); // => 30.299999999999997

// 使用toFixed()方法
console.log( (0.2 + 0.7).toFixed(2) ); // => 0.90 
console.log( (0.7 - 0.5).toFixed(2) ); // => 0.20  
console.log( (3.03 * 10).toFixed(2) ); // => 30.30 

  

2.6.2 减法运算

说明:Js中进行减法运算时,会先把前后的值转换为数值再进行运算。若转换失败,返回NaN。

示例:

console.log('1' - 0); // => 1 :纯数字字符串减去0,可以快速转换为Nubmer对象
console.log( ('1' - 0).toFixed(2) ); // => 1.00 :快速转换为Nubmer对象后调用实例方法
console.log('1' - 'a'); // => NaN :一方无法转换为Nubmer对象

3.String 对象属性

FF: Firefox, IE: Internet Explorer

属性描述FFIE
constructor对创建该对象的函数的引用14
length字符串的长度13
prototype允许您向对象添加属性和方法14

String 对象方法

FF: Firefox, IE: Internet Explorer

方法描述FFIE
anchor()创建 HTML 锚。13
big()用大号字体显示字符串。13
blink()显示闪动字符串。1
bold()使用粗体显示字符串。13
charAt()返回在指定位置的字符。13
charCodeAt()返回在指定的位置的字符的 Unicode 编码。14
concat()连接字符串。14
fixed()以打字机文本显示字符串。13
fontcolor()使用指定的颜色来显示字符串。13
fontsize()使用指定的尺寸来显示字符串。13
fromCharCode()从字符编码创建一个字符串。14
indexOf()检索字符串。13
italics()使用斜体显示字符串。13
lastIndexOf()从后向前搜索字符串。13
link()将字符串显示为链接。13
localeCompare()用本地特定的顺序来比较两个字符串。14
match()找到一个或多个正在表达式的匹配。14
replace()替换与正则表达式匹配的子串。14
search()检索与正则表达式相匹配的值。14
slice()提取字符串的片断,并在新的字符串中返回被提取的部分。14
small()使用小字号来显示字符串。13
split()把字符串分割为字符串数组。14
strike()使用删除线来显示字符串。13
sub()把字符串显示为下标。13
substr()从起始索引号提取字符串中指定数目的字符。14
substring()提取字符串中两个指定的索引号之间的字符。13
sup()把字符串显示为上标。13
toLocaleLowerCase()把字符串转换为小写。--
toLocaleUpperCase()把字符串转换为大写。--
toLowerCase()把字符串转换为小写。13
toUpperCase()把字符串转换为大写。13
toSource()代表对象的源代码。1-
toString()返回字符串。--
valueOf()返回某个字符串对象的原始值。14

String 对象描述

字符串是 JavaScript 的一种基本的数据类型。

String 对象的 length 属性声明了该字符串中的字符数。

String 类定义了大量操作字符串的方法,例如从字符串中提取字符或子串,或者检索字符或子串。

需要注意的是,JavaScript 的字符串是不可变的(immutable),String 类定义的方法都不能改变字符串的内容。像 String.toUpperCase() 这样的方法,返回的是全新的字符串,而不是修改原始字符串。

在较早的 Netscape 代码基的 JavaScript 实现中(例如 Firefox 实现中),字符串的行为就像只读的字符数组。例如,从字符串 s 中提取第三个字符,可以用 s[2] 代替更加标准的 s.charAt(2)。此外,对字符串应用 for/in 循环时,它将枚举字符串中每个字符的数组下标(但要注意,ECMAScript 标准规定,不能枚举 length 属性)。因为字符串的数组行为不标准,所以应该避免使用它。

4.JavaScript Date 对象

Date 对象

Date 对象用于处理日期和时间。

创建 Date 对象的语法:

var myDate=new Date()

注释:Date 对象会自动把当前日期和时间保存为其初始值。

Date 对象属性

属性描述
constructor返回对创建此对象的 Date 函数的引用。
prototype使您有能力向对象添加属性和方法。

Date 对象方法

方法描述
Date()返回当日的日期和时间。
getDate()从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getDay()从 Date 对象返回一周中的某一天 (0 ~ 6)。
getMonth()从 Date 对象返回月份 (0 ~ 11)。
getFullYear()从 Date 对象以四位数字返回年份。
getYear()请使用 getFullYear() 方法代替。
getHours()返回 Date 对象的小时 (0 ~ 23)。
getMinutes()返回 Date 对象的分钟 (0 ~ 59)。
getSeconds()返回 Date 对象的秒数 (0 ~ 59)。
getMilliseconds()返回 Date 对象的毫秒(0 ~ 999)。
getTime()返回 1970 年 1 月 1 日至今的毫秒数。
getTimezoneOffset()返回本地时间与格林威治标准时间 (GMT) 的分钟差。
getUTCDate()根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。
getUTCDay()根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。
getUTCMonth()根据世界时从 Date 对象返回月份 (0 ~ 11)。
getUTCFullYear()根据世界时从 Date 对象返回四位数的年份。
getUTCHours()根据世界时返回 Date 对象的小时 (0 ~ 23)。
getUTCMinutes()根据世界时返回 Date 对象的分钟 (0 ~ 59)。
getUTCSeconds()根据世界时返回 Date 对象的秒钟 (0 ~ 59)。
getUTCMilliseconds()根据世界时返回 Date 对象的毫秒(0 ~ 999)。
parse()返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
setDate()设置 Date 对象中月的某一天 (1 ~ 31)。
setMonth()设置 Date 对象中月份 (0 ~ 11)。
setFullYear()设置 Date 对象中的年份(四位数字)。
setYear()请使用 setFullYear() 方法代替。
setHours()设置 Date 对象中的小时 (0 ~ 23)。
setMinutes()设置 Date 对象中的分钟 (0 ~ 59)。
setSeconds()设置 Date 对象中的秒钟 (0 ~ 59)。
setMilliseconds()设置 Date 对象中的毫秒 (0 ~ 999)。
setTime()以毫秒设置 Date 对象。
setUTCDate()根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
setUTCMonth()根据世界时设置 Date 对象中的月份 (0 ~ 11)。
setUTCFullYear()根据世界时设置 Date 对象中的年份(四位数字)。
setUTCHours()根据世界时设置 Date 对象中的小时 (0 ~ 23)。
setUTCMinutes()根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
setUTCSeconds()根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。
setUTCMilliseconds()根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。
toSource()返回该对象的源代码。
toString()把 Date 对象转换为字符串。
toTimeString()把 Date 对象的时间部分转换为字符串。
toDateString()把 Date 对象的日期部分转换为字符串。
toGMTString()请使用 toUTCString() 方法代替。
toUTCString()根据世界时,把 Date 对象转换为字符串。
toLocaleString()根据本地时间格式,把 Date 对象转换为字符串。
toLocaleTimeString()根据本地时间格式,把 Date 对象的时间部分转换为字符串。
toLocaleDateString()根据本地时间格式,把 Date 对象的日期部分转换为字符串。
UTC()根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。
valueOf()

返回 Date 对象的原始值。

5.JavaScript Array 对象

Array 对象

Array 对象用于在单个的变量中存储多个值。

创建 Array 对象的语法:

new Array();
new Array(size);
new Array(element0, element1, ..., elementn);

参数

参数 size 是期望的数组元素个数。返回的数组,length 字段将被设为 size 的值。

参数 element ..., elementn 是参数列表。当使用这些参数来调用构造函数 Array() 时,新创建的数组的元素就会被初始化为这些值。它的 length 字段也会被设置为参数的个数。

返回值

返回新创建并被初始化了的数组。

如果调用构造函数 Array() 时没有使用参数,那么返回的数组为空,length 字段为 0。

当调用构造函数时只传递给它一个数字参数,该构造函数将返回具有指定个数、元素为 undefined 的数组。

当其他参数调用 Array() 时,该构造函数将用参数指定的值初始化数组。

当把构造函数作为函数调用,不使用 new 运算符时,它的行为与使用 new 运算符调用它时的行为完全一样。

Array 对象属性

属性描述
constructor返回对创建此对象的数组函数的引用。
length设置或返回数组中元素的数目。
prototype使您有能力向对象添加属性和方法。

Array 对象方法

方法描述
concat()连接两个或更多的数组,并返回结果。
join()把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
pop()删除并返回数组的最后一个元素
push()向数组的末尾添加一个或更多元素,并返回新的长度。
reverse()颠倒数组中元素的顺序。
shift()删除并返回数组的第一个元素
slice()从某个已有的数组返回选定的元素
sort()对数组的元素进行排序
splice()删除元素,并向数组添加新元素。
toSource()返回该对象的源代码。
toString()把数组转换为字符串,并返回结果。
toLocaleString()把数组转换为本地数组,并返回结果。
unshift()向数组的开头添加一个或更多元素,并返回新的长度。
valueOf()返回数组对象的原始值