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 是松散型语言,决定了它只是在某一个特定时间保存某一特定的值的一个名字而已.由于在定义变量的时候不需要显示规定必须保存某种类型的值,故变量的值以及保存的 ...
随机推荐
- three.js初涉略(一)
<!-- 最近要研究一下webgl,发现了webgl中文网(http://www.hewebgl.com/article/articledir/1).边研究教程边做下记录 --> thre ...
- 用eclipse打开已经编译的工程
第一种方法: eciplise------>File------>Import------>General------>Existing Project into Worksp ...
- CAD2008 启动慢 卡住
CAD2008打开很慢解决CAD2008打开很慢的方法: 第一个:1.[开始]―[控制面板]. 2.选择[网络和Internet连接]选项,再点[Internet选项]. 3.在Internet属性对 ...
- sql的各种join连接
SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name id name id name -- ---- -- ---- ...
- HAProxy配置SSL
前沿 据悉苹果强制APP在2016年底使用ATS协议,所以公司准备将部分站点http统一替换成https.所有我们就得测试下 1.首先原有的haproxy1.5升级到了1.7版本支持ssl 2.查看相 ...
- Codeforces Round #389 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 3) C
Description Santa Claus has Robot which lives on the infinite grid and can move along its lines. He ...
- python之禅
>>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is ...
- HDU2586How far away ?
http://acm.hdu.edu.cn/showproblem.php?pid=2586 How far away ? Time Limit: 2000/1000 MS (Java/Others) ...
- 【转】UML类图与类的关系详解
UML类图与类的关系详解 2011-04-21 来源:网络 在画类图的时候,理清类和类之间的关系是重点.类的关系有泛化(Generalization).实现(Realization).依赖(D ...
- juqery模板 Templates
现在已经有了许多JavaScript的解决方案模板,从这方面说,标准化的模板解决方案必然是大势所趋.在本节中,我们向你简要描述四个最流行最有趣的模板.现有的模板解决方案能解决什么?那些特色在jQuer ...