JS学习笔记01
文章转载pigpigpig4587 的
1.Javascript是区分大小写的语言。也就是说、关键字、变量,函数和所有的标识符都必须采取一致的大小写形式。因为html不严格区分大小写,所以在html中写onclick属性时可以写成onClick。但在javascript中必须写成小写onclick。
2.Javascipt 定义了一种特殊序列,使用6位ASCII字符代表任意16Unicode内码。这些Unicode转义序列均以\u为前缀,其后跟随4位十六进制数。
转意字符可以用作:字符串直接量,正则表达式直接量和标识符(关键字除外)。例如下字符串常量是等价的 "café" ==="caf\u00e9"
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的更多相关文章
- Node.js学习笔记 01 搭建静态服务器
希望这篇文章能解决你这样一个问题:“我现在已经了解了一些Node.Js基本概念了,怎么搭一台静态服务器呢?” 请参考一下博主的前两篇文章: 完全面向于初学者的Node.js指南 Node.Js的Mod ...
- Three.js学习笔记01
1.四大组件: 场景:场景是所有物体的容器 var scene = new THREE.Scene(); 相机: 正投影相机:远处的和近处的是一样大 THREE.OrthographicCamera ...
- Vue.js学习笔记:在元素 和 template 中使用 v-if 指令
f 指令 语法比较简单,直接上代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " ...
- WebGL three.js学习笔记 6种类型的纹理介绍及应用
WebGL three.js学习笔记 6种类型的纹理介绍及应用 本文所使用到的demo演示: 高光贴图Demo演示 反光效果Demo演示(因为是加载的模型,所以速度会慢) (一)普通纹理 计算机图形学 ...
- WebGL three.js学习笔记 加载外部模型以及Tween.js动画
WebGL three.js学习笔记 加载外部模型以及Tween.js动画 本文的程序实现了加载外部stl格式的模型,以及学习了如何把加载的模型变为一个粒子系统,并使用Tween.js对该粒子系统进行 ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Vue.js学习笔记(2)vue-router
vue中vue-router的使用:
- 软件测试之loadrunner学习笔记-01事务
loadrunner学习笔记-01事务<转载至网络> 事务又称为Transaction,事务是一个点为了衡量某个action的性能,需要在开始和结束位置插入一个范围,定义这样一个事务. 作 ...
- JS 学习笔记--9---变量-作用域-内存相关
JS 中变量和其它语言中变量最大的区别就是,JS 是松散型语言,决定了它只是在某一个特定时间保存某一特定的值的一个名字而已.由于在定义变量的时候不需要显示规定必须保存某种类型的值,故变量的值以及保存的 ...
随机推荐
- MYSQL中存储过程的创建,调用及语法
MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库 ...
- eclipse 4.5.2 源码修改 格式化Java代码
注:本文代码基于eclipse4.5.2 1. 需求:在换电脑之后,如何不用配置eclipse就可以很快进入开发呢,并保持原来的编码规范. 2. 方法:修改eclipse源码 分别修改了两个jar包2 ...
- metaclass 常用方式
一个类作为metaclass的时候,我们需要重写它的__new__方法,这个方法的参数包括要创建class object的 metaclass,类名,父类集合,类成员 class MyMetaclas ...
- Android 秒级编译 Freeline
http://mp.weixin.qq.com/s?__biz=MzA4NTQwNDcyMA==&mid=2650662410&idx=1&sn=c654fa7b0cc8c91 ...
- windows 7系统下出现某盘回收站损坏解决办法
今天遇到一个从没有遇见的问题,就是领导说他的回收站损坏了,要我去看下,我一开始也没用辙,网上搜了很多,说在命令提示符里面修改,我试了不行,后来我这样做就好了:1.打开计算机 2.找到工具选项,单击选择 ...
- Android Studio 2.0使用指南
一.下载界面.[无激活码 无序列码 无毒请放心使用][需将JAVA程序升级到1.8] 网址:http://www.android-studio.org/index.php/download/andro ...
- shmop ftok
http://blog.csdn.net/heiworld/article/details/25426723 对于ftok的理解 http://www.jb51.net/article/510 ...
- Python控制window进行简单的消息弹窗
有人提到可以用easygui 稍后尝试一下
- R中数据拆分和整合
library(data.table)ID <- c(NA,1,2,2)IDTime <- c(1,2,NA,1)TimeX1 <- c(5,3,NA,2)X1X2 <- c( ...
- LBWE更新模式切换问题:缓存清理
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...