JavaScript的数学对象——Math对象

1、Math 对象的属性

 // 自然对数的底数,常量e的值
 document.write(Math.E); // 2.718281828459045
 // 10的自然对数
 document.write(Math.LN10); // 2.302585092994046
 // 2的自然对数
 document.write(Math.LN2); // 0.6931471805599453
 // 以10为底e的对数
 document.write(Math.LOG10E); // 0.4342944819032518
 // 以2为底e的对数
 document.write(Math.LOG2E); // 1.4426950408889634
 // π的值
 document.write(Math.PI); // 3.141592653589793
 // 1/2的平方根
 document.write(Math.SQRT1_2); //0.7071067811865476 
 // 2的平方根
 document.write(Math.SQRT2); //1.4142135623730951

2、min()和 max()方法用于确定一组数值中的最小值和最大值。这两个方法都可以接收任意多个数值参数。

 var max = Math.max(16, 56, 38, 10);
 document.write(max); // 56
 var min = Math.min(16, 56, 38, 10);
 document.write(min); // 10

要找到数组中的最大或最小值,可以像下面这样使用 apply()方法

 var values = [1, 3, 5, 7, 9, 11];
 // 把Math对象作为apply()的第一个参数,从而正确地设置this值
 var max = Math.max.apply(Math, values);
 document.write(max); // 11

3、舍入方法

 Math.ceil()执行向上舍入,即它总是将数值向上舍入为最接近的整数;

 Math.floor()执行向下舍入,即它总是将数值向下舍入为最接近的整数;

 Math.round()执行标准舍入,即它总是将数值四舍五入为最接近的整数。

 // ceil向上取整
 document.write(Math.ceil(3.2)); // 4
 document.write(Math.ceil(3.9)); // 4
 document.write(Math.ceil(3.5)); // 4
 // floor向下取整
 document.write(Math.floor(3.2)); // 3
 document.write(Math.floor(3.5)); // 3
 document.write(Math.floor(3.9)); // 3
 // round四舍五入
 document.write(Math.round(3.2)); // 3
 document.write(Math.round(3.5)); // 4
 document.write(Math.round(3.9)); // 4

4、random()方法

Math.random()方法返回大于等于 0 小于 1 的一个随机数。

利用 Math.random() 从某个整数范围内随机选择一个值。 公式:值 = Math.floor(Math.random() * 可能值的总数 + 第一个可能的值)

 // 2-10之间的值
 var num = Math.floor(Math.random() * 9 + 2);
 document.write(num); // 7

js是一种解释型,事件驱动型,面向对象型的脚本语言,通过浏览器加载的JavaScript解释器(Js引擎)执行

解释型:边解释边执行,不会编译产生中间文件,注意:js无编译过程

脚本语言:js依赖于html文件存在,不会独立运行

Js不能干什么:

1.不能访问用户的本地文件

2.不能操作来自不同服务的网页文档(html文件)

三个书写位置:

1.内联:在html标签中,通过事件

2.在body标签中,通过script标签书写

3.在head标签中,通过script标签引入js文件

注意:js代码从上至下运行

变量

Js为弱语言类型,其变量的声明都使用var,但变量中存储的数据是有类型的;

Js数据类型有:

number:数字(包含整数,小数);

string:字符串(包含字符,字符串);

boolean:布尔

object:对象

undefined:未定义

例:var str = "Hello World";

var num = 10;

var num = 10.2;

var flag = true;

算数运算符

+ - * / % ++ --

注:除/外,与Java相同

因Js数据不区分数据类型,故/结果为小数,例: 5/2 = 2.5;在Java中 5/2 = 2;

赋值运算符:

= += -= *= /= %= 同上

关系运算符

==:判断两个变量字面量是否相同,例:13 == "13" 的值为true

===:判断两个变量字面量,数据类型是否同时满足相同.例:13 === "13" 的结果为false

> < >= <= != 同Java

逻辑运算符

&

&&:逻辑与:同真为真,一假为假;当为真时,返回最后一个为真的值;当为假时,返回第一个为假的值

|

|| :逻辑或:一真为真,同假为假;当为真时,返回第一个为真的值,当为假时,返回最后一个为假的值

!

函数(方法,api)

两种格式:

1.var 方法名 = function(形参列表){

方法体;

}

2.function 方法名(形参列表){

方法体;

}

判断语句:

switch(){

}

if(){

}else if(){

}else{}

循环语句:

while(){}

do{}while()

普通for循环:for(){}

增强for循环:for(集合的索引 in 要循环的集合){}

流程控制语句:

break:结束本次循环

continue:跳出当前循环,继续下次循环

对象

Js中对象的两种创建方式:

1.普通方式

var 对象名 = function(形参列表){

属性名1 : 属性,

属性名2 : 属性,

...

方法名1 : function(形参列表){}

}

2.构造器

function 方法名[类名] (形参列表){

this.属性名1 = 属性名1;

this.属性名2 = 属性名2;

...

this.方法名1 = function(形参列表){方法体};

this.方法名2 = 方法名(形参列表);

*注:当方法中代码过长时,可以将方法在构造器外部封装,在构造器中引用封装的方法;

}

var 对象名 = new 方法名(形参列表);

扩展属性

当对象中没有该属性时,在外部扩展

1.对象名.属性名 = 属性值;

注:此时扩展的属性只能在该对象中使用

2.构造器.prototype.属性名 = 属性值;

注:此时扩展的属性在该构造器构建的对象中都可以使用

内置对象

含义:即Js提前封装好的一个构造器

String:字符串对象

Array:数组对象

Date:日期对象

Math:数学对象

Number:数字计算对象

Boolean:布尔对象

Regexp:正则表达式对象

erroy:异常处理的对象

Object:通用对象

Function:顶层对象,function的属性为全局属性,function的函数为全局函数

Events:事件对象

Date:

var date = new Date();创建Date对象

date.getxxxx:获取时间,年,月,日,时,分,秒

date.setxxxx:设置时间,年,月,日,时,分,秒

String:

创建对象:

var str = new String();

var str = new String("xxx");

var str = "xxxx";

函数:

match():匹配,同正则表达式使用,若匹配成功,返回匹配成功的字符串;反之,返回null

其余同Java

Array:

创建对象:

var arr = new Array();

var arr = new Array(1,2,"mm",'n',true,object);

var arr = [1,2,"mm",'n',true,object];

函数:同Java

Regexp:

正则表达式:

\d:0-9任意一个数字

\s:空白字符

\b:单词快捷

\uxxxx:匹配unicode字符

[0-9]:0-9任意一个数字

[13579]:1,3,5,7,9中任意一个数字

[1,3,5,7,9]:1,3,5,7,9中任意一个数字

[a-z]:a到z任意一个字符

[0-9a-zA-Z]:任意一个数字或字符

{m}:出现m次

{m,n}:出现m到n次

{m,}:至少出现m次

|:或

():括号中的为一个整体

a+:至少一个a

a*:0到n个a

a?:0到1个a

创建对象:

var reg = new Regexp("正则表达式");

函数:

test():测试,判断传入的字符串是否满足正则表达式,满足返回true,反之flase

Function:

函数:

encodeURI():对网址参数部分进行编码(特殊符号和中文)

decodeURI():多编码的网址参数进行解码

escape():对字符串的特殊符号和中文进行编码

unescape():对编码的字符串进行解码

BOM:

浏览器窗口(顶层)window,下分5部分

Screen:屏幕

History:历史

Document:网页

location:地址

navigator:浏览器

DOM:即document

javascript number对象

javascript只有一个数字类型,

可以使用叶可以不使用小数点来书写数字.

javascript 数字,

javascript数字可以使用也可以不使用小数点来书写:

var pi=3.14;//使用小数点

var x=34; //不使用小数点

极大或极小的数字可通过科学(指数)计数法来写:

var y=123e5;//12300000

var z=123e-5;//0.00123

所以javascript数字均为64位

,javascript不是类型语言,与许多其他编程语言不同,javascript不定义不同类型的

数字,比如整数,短、长、浮点等等,

javascript中的所有数字都存储为根位10的64(8比特),浮点数.


精度,整数(不使用小数点或指数计数法)最多为15位,

小数的最大位数是17,但是浮点运算并不总是100%准确;

var x=0.2+0.1;

八进制和十六进制,

如果前缀为0,则javascript会把数值常量解释为八进制数,如果前缀为0和"X",则解释为十六进制数,

var y=0377;

var z=0xFF;

绝不要在数字前面写零,除非您需要进行八进制转换.

数字属性和方法,属性:

MAX VALUE ,MIN VALUE , NEGATIVE INFINITIVE,POSITIVE INFINITIVE,NaN

prototype,constructor

方法:toExponential(),toFixed(),toPrecision(),toString(),valueOf()

JavaScript的数学对象——Math对象

Math 对象

JavaScript给我们提供了一些操作数字的方法,也是一种数据类型是复杂数据类型。

Math对象的通用语法: http://Math.xxx()

random()

Math.random() 这个方法是用来生成一个 0 ~ 1 之间的随机数

每次执行生成的数字都不一样,但是一定是 0 ~ 1 之间的。生成的数字包含 0 ,但是不包含 1。

var num = Math.random()
console.log(num) // 得到一个随机数

round()

Math.round() 是将一个小数 四舍五入 变成一个整数。

var num = 10.1
console.log(Math.round(num)) // 10

var num2 = 10.6
console.log(Math.round(num2)) // 11

abs()

Math.abs() 是返回一个数字的 绝对值

var num = -10
console.log(math.abs(num)) // 10

ceil()

Math.ceil() 是将一个小数 向上取整 得到的整数

var num = 10.1
console.log(Math.ceil(num)) // 11

var num2 = 10.9
console.log(Math.ceil(num2)) // 11

floor()

Math.floor() 是将一个小数 向下取整 的到的整数

var num = 10.1
console.log(Math.floor(num)) // 10

var num2 = 10.9
console.log(Math.floor(num2)) // 10

max()

Math.max() 得到的是你传入的几个数字之中 最大 的那个数字

console.log(Math.max(1, 2, 3, 4, 5)) // 5

min()

Math.min() 得到的是你传入的几个数字之中 最小 的那个数字

console.log(Math.min(1, 2, 3, 4, 5)) // 1

sqrt()

Math.sqrt()得到你传入数字的算术平方根

var res = Math.sqrt(4)
console.log(res)

pow()

Math.pow(底数,指数)等到一个你传入指定底数和指数的值

var res = Math.pow(2, 10)
console.log(res)

PI

Math.PI 得到的是 π 的值,也就是 3.1415926...

console.log(Math.PI) // 3.141592653589793

因为计算机的计算精度问题,只能得到小数点后 15 位。使用 Math.PI 的时候,是不需要加 () 的。

```python
class BertPooler(nn.Module):
    def __init__(self, config):
        super().__init__()
        self.dense = nn.Linear(config.hidden_size, config.hidden_size)
        self.activation = nn.Tanh()

    def forward(self, hidden_states):
        # We "pool" the model by simply taking the hidden state corresponding
        # to the first token.
        first_token_tensor = hidden_states[:, 0]
        pooled_output = self.dense(first_token_tensor)
        pooled_output = self.activation(pooled_output)
        return pooled_output
from transformers.models.bert.configuration_bert import *
import torch
config = BertConfig.from_pretrained("bert-base-uncased")
bert_pooler = BertPooler(config=config)
print("input to bert pooler size: {}".format(config.hidden_size))
batch_size = 1
seq_len = 2
hidden_size = 768
x = torch.rand(batch_size, seq_len, hidden_size)
y = bert_pooler(x)
print(y.size())
```

  • 15
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值