JS学习笔记01

时间:2023-03-08 15:44:53
JS学习笔记01

文章转载pigpigpig4587 的

1.Javascript是区分大小写的语言。也就是说、关键字、变量,函数和所有的标识符都必须采取一致的大小写形式。因为html不严格区分大小写,所以在html中写onclick属性时可以写成onClick。但在javascript中必须写成小写onclick。

2.Javascipt 定义了一种特殊序列,使用6位ASCII字符代表任意16Unicode内码。这些Unicode转义序列均以\u为前缀,其后跟随4位十六进制数。

转意字符可以用作:字符串直接量,正则表达式直接量和标识符(关键字除外)。例如下字符串常量是等价的 "café" ==="caf\u00e9"

JS学习笔记01

3.js注释有如下两种

//单行注释  ,  /**/多行注释(多行注释可以跨行书写,但不能有嵌套的注释)

4.在js中,标识符是用来对变量和函数进行命名,或者在js代码中某些循环语句中跳转位置的标记。必须字母、下划线、$开始。后续可以是字母、下划线、$(数字不能作为首字符出现

如下者是合法的:i ,my_variable_name ,v13 ,_dummy  ,$str

5.JS把一些标识符拿出来用做自己的关键字。因此,就不能再在程序中把这些关键字符做为标识符:

break 

case 

catch 

continue

debugger 

default

delete 

doelse 

false

finally 

for

function 

if

in 

instanceof

new 

null

return 

switch

this 

throw

true 

try

typeof 

var

void 

while

with。

在ECMAScript 5中还有保留字

class

constenum

export

extends

import

super

严格模式下还有

implements

let

private

public

yield

interface

package

protected

static

另外,javascript预定义了很多全局变量和函数,应当避免把它们的名字用在变量名或函数名

arguments 

encodeURI

Infinity 

Number

RegExp

Array 

encodeURI

Component

isFinite 

Object

String

Boolean 

Error

isNaN 

parseFloat

SyntaxError

Date

eval

JSON 

parseInt

TypeError

decodeURI 

EvalError

Math

RangeError

undefined

decodeURIComponent 

Function

NaN 

ReferenceError 

URIError

6.JS的数据类型分为两类:原始数据类型(java的基本数据类型)对象数据类型(java的引用数据类型)

原始数据类型:字符串,布尔,数值,null(空)和undefined(未定义)。其中后两个分别代表了各自特殊类型的唯一成员

对象数据类型:除以上五种就是对象。普通JS对象是“命名值”的无序集合。还有种特殊对象----数组,表示编号的值的有序信息。还有另外一种特殊对象-----函数(具有与它相关联的可执行代码的对象)对于JS函数来讲,最重要的是,它们都是真值,并且js可以将它们当做普通对象来对待

函数用来初始化一个对象可以使用 new 运算符,我们称之为构造函数。每个构造函数定义了一类对象。这类对象是由构造函数初始化的对象组成的集合。类可以看做是对象类型的子类型。

JS核心定义了五种有用的类

Array类

Function类

Date类

RegExp类

Error类

还有一种分法:可以拥有方法的类型和不能拥有方法的类型,同样可分为可变类型和不可变类型。数字、布尔、null、undefined属于不可变类型。字符串可以看成由字符组成的数组。但字符串在js中是不可变的。

7.JS采用IEEE 754标准定义的64位浮点格式表示数字,这意味着它能表示最的值大的正负1.7976931348623157X10的308次方,最小是正负5X10负324次方。整数范围是正负9 007 199 254 740 922,包括边界值。

0x表示十六进制数

0开头表示八进制数据

8. + - * / % 除基本运算符以外,还支持更加复杂的算术运算,这些复杂运算通过作为Math对象的属性定义的函数和常量来实现

Math.pow(2,53) // 2的53次幂

Math.round(.6) //四舍五入 1

Math.ceil(.6) //向上取整 1

Math.floor(.6)//向下取整 0

Math.abs(-5)//绝对值 5

Math.max(x,y,z)//最大值

Math.min(x,y,z)//最小值

Math.random()//随机数

Math.PI//圆周率

Math.E//e的自然对数

Math.sqrt(3)//3的平方根

Math.pow(3,1/3)//3的立方根

Math.sin(0)//三角函数

Math.log(10)//10的自然对数

Math.log(10)/Math.LN10//10为底100的对数

Math.log(512)/Math.LN2//2为底512的对数

Math.exp(3)//e的三次幂

js 算术运算在溢出、下溢、被零除时不会报错。

如查溢出,结果为一个特殊的无穷大值,js用Infinity表示(+Infinity -Infinity

 除零无意义:会返回非数字,用 NaN表示 这个值在ECMAScript3中这两个值是可以读写的。ECMAScript5中修正了这个错误

js中NaN有个特点,它和任何值都不相等,包括本身。也就是说,当且仅当x=NaN 通过这个条件x!=x来判断它是不是数值。类似isNaN()函数

9.实数是无数个,但js通过 浮点数的形式只能表示其中的有限个数。JS采用的是IEEE-745浮点数表示法(几乎所有现代编程语言采用),这是一种二进制表示法,可以精确表示1/2,1/8,1/1024。遗憾的是,我们常用的是10进制数,所以分数1/10,1/100二进制浮点表示法并不能精确地表示类似0.1这样简单的数字。只能极其近似于0.1。如下

JS学习笔记01

这个问题在任何二进制浮点数的编程语言中都会出现。

计算没有问题,但比较两个数的时候需要注意。