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 是松散型语言,决定了它只是在某一个特定时间保存某一特定的值的一个名字而已.由于在定义变量的时候不需要显示规定必须保存某种类型的值,故变量的值以及保存的 ...
随机推荐
- tomcat作为服务器的配置
tomcat在启动时,会读取环境变量的信息,需要一个CATALINA_HOME 与JAVA_HOME的信息,CATALINA_HOME即tomcat的主目录,JAVA_HOME即java安装的主目录, ...
- linux问题
make:进入目录'/opt/FriendlyARM/tiny4412/05android/android-4.1.2'target Dex: framework trouble writing ou ...
- EF INNER JOIN,LEFT JOIN,GROUP JOIN
IQueryable<TOuter>的扩展方法中提供了 INNER JOIN,GROUP JOIN但是没有提供LEFT JOIN GROUP JOIN适用于一对多的场景,如果关联的GROU ...
- laravel框架总结(十三) -- redis使用
一切的前提都是已经安装好了redis服务器,并且能启动(我只总结了mac的安装方法:传送门) 我自己使用的是mac系统,有个教程可以参考下,传送门: 1.安装PHP PRedis 1>PRedi ...
- Redhat、CentOS添加静态路由的标准方法
我们经常遇到需要在系统默认路由的基础上,额外添加静态路由的需求.为了使得下次系统启动这些静态路由依旧生效,我们可能采取在rc.loal里加入route命令追加静态路由的方法. 现在给大家推荐Redha ...
- Python3基础 访问列表 小于指定索引值的所有元素
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- 动态规划(DP)
一.基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移.一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划. 二.基本思想与策略 基本 ...
- Linux and the Device Tree
来之\kernel\Documentation\devicetree\usage-model.txt Linux and the Device Tree ----------------------- ...
- this的用法
因为循环是非常快的,我们手动点击的时候,for循环已经循环完了.如果在循环里面添加点击事件,点击事件的i的值就是循环结果的那个值,而不是对应的循环的值,此时,我们就需要用到this 来实现 点击 ...
- Spark在Hadoop集群上的配置(spark-1.1.0-bin-hadoop2.4)
运行Spark服务,需要在每个节点上部署Spark. 可以先从主节点上将配置修改好,然后把Spark直接scp到其他目录. 关键配置 修改conf/spark-env.sh文件: export JAV ...