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 是松散型语言,决定了它只是在某一个特定时间保存某一特定的值的一个名字而已.由于在定义变量的时候不需要显示规定必须保存某种类型的值,故变量的值以及保存的 ...
随机推荐
- myeclipse快捷键
转: 当时我看到struts2讲解视频的时候,讲解员居然能一下子注释掉好几行代码,而且注释的很整齐,然我大吃一惊,上网搜了下Myeclipse的快捷键还真多选择你要注释的那一行或多行代码,按Ctrl+ ...
- asp之缓存 cachestate
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- c++中的重载(Overload)、覆盖(重写,Override) 、隐藏与using声明
这些概念有时记住了,但可能没多久就忘了,还是记下来吧.网上找的一篇不错:这里 1 重载与覆盖 成员函数被重载的特征: (1)相同的范围(在同一个类中,不包括继承来的): (2)函数名字相同: (3) ...
- linux vmware安装完成后如何设置桥接上网
linux 主机初步安装完成后还是不能上网,如何设置共享上网 1 首先要明白上网方式:虚拟机网卡-------------------vmnet1--------------------真实机网卡( ...
- Windows 版本的iTunes 修改iPhone的备份路径
帮朋友解决修改iPhone的备份路径问题,故写篇博客整理记录一下. 所需工具 Junction工具 下载该工具然后将文件放到C:\Windows 目录下,如下图: 找到iTunes的备份路径 Wind ...
- WebForm session,cookies
session : Session:在计算机中,尤其是在网络应用中,称为"会话控制".Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 Web页之 ...
- Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳
Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳 早期的身份证号码为15位数字,现在使用的身份证号码为18位数字,它们的含义如下:(1)15位:1-6位为地区代码,7-8位 ...
- [转载]LazyWriter(惰性写入器) 进程的作用
Q:What Does the LazyWriter Process Do? The LazyWriter process is a periodic process that checks th ...
- Thread 和 Runnable 的区别
在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口: Thread类是在java.lang包中定义 的.一个类只要继承了Thread类同时覆写了本类中的run ...
- 韩国手机游戏Elf Defense角色场景
! [复制链接] CG窝微博 签到天数: 36 天 连续签到: 1 天 [LV.5]常住居民I 22 主题 0 精华 2729 窝币 超级版主 积分 2546 收听TA 发消息 电梯直达 楼主 ...