javaScript(上)

#整理Javascript一些知识点

javascript 浏览器脚本语言 最大的特点就是单线程了。JavaScript的主要用途是与用户互动,以及操作DOM。负责内容 样式 行为分离环节中的分离部分。

##js的组成

###ECMAScript
核心 几乎没有兼容问题 担任解析器的角色 处理我们的逻辑代码

###DOM
文档对象模型;文档指的就是网页;把网页变成一个JS可以操作的对象;给了JS可以操作页面元素的能力;document;有一些兼容性问题;

###BOM
浏览器对象模型;给了JS操作浏览器的能力;window;有许多兼容性问题

##js的引用

外部文件 script标签 src属性

内部 script标签区域

注释方式 单行注释 多行 注释

##js的数据类型

###基本类型

1.Underfined

在使用var声明变量,但未对其加以初始化时,这个变量的类型就是undefined,且其默认初始化值为undefined.对未声明与初始化的变量,直接使用,那么这个变量的类型也是undefined,但是没有默认初始化值。type test;//undefined 直接调用就会报错

2.Null

null类型的默认值是null,表示一个空对象指针,如果定义的变量准备在将来用于保存对象,那么就该将该变量初始化为null。

3.Boolean

该类型有两个值:true false

Boolean()方法 可以转换其他数据类型为布尔值

4.Number

整数 可以通过10进制 8进制 16进制表示

浮点数 该数值必须包含一个小数点,小数点后面必须有一位数字,如果小数点后只有0,自动转换成整数浮点数占据的空间内存是内存的两倍,极大极小的数字会用e科学表示法。

NaN 非数

1、即非数值,是一个特殊的值,这个数值用于表示一个本来要返回数值的操作数,未返回数值的情况。比如任何数值除以0,本是不符合规范的,js里,这样的操作返回NaN(但是实际上,只有0除以0时返回NaN,其他则无穷值)。
2、NaN有两个不同寻常的特点:任何涉及NaN的操作都会返回NaN,NaN值与任何值都不相等,包括本身。
3、isNaN()函数,这个函数可以判断,传递的参数是否“不是数值”这里涉及数值转换的问题,例如“10”这个字符串就可以转换为10,但是“blue”这个字符串则无法转换为数字,所以isNaN("blue")==true

Number() 可以    任何类型

parseInt()  parseFloat() 只用于字符串类型

5.string

‘’ “”单引号 双引号

基本类型的特点:

基本类型的值是不可变得

复杂对象类型 Object 对象是属性和方法的集合

基本类型以外 就是引用类型

引用类型的特点

引用类型的值是可变的

###复杂数据类型

object 对象类型

Array 数组也是对象

Function 函数

##变量 var (let const)

变量是一个杯子,它的类型是由它里面存放的东西决定的

可以通过 typeof( )检测出元素的类型

命名规范 一般推荐驼峰式命名

##流程控制语句:

if 最基本的条件判断语句

if( 10 < 20 ){

}else{

}

for 循环

for(var i = 0 ; i< index.length;i++){ }

switch

for-in 遍历对象

forEach 遍历数组

try catch

width

eval

##作用域

###this

this是Javascript语言的一个关键字。

它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用

随着函数使用场合的不同,this的值会发生变化。但是有一个总的原则,那就是this指的是,调用函数的那个对象。

  1. 普通函数调用

  2. 作为对象方法的调用

  3. 作为构造函数调用

  4. apply() call()

“构造函数”,其实就是一个普通函数,但是内部使用了this变量。对构造函数使用new运算符,就能生成实例,并且this变量会绑定在实例对象上

用构造函数生成实例对象,有一个缺点,那就是无法共享属性和方法。

###继承

对象之间的继承方法

  1. 构造函数绑定

使用call或apply方法,将父对象的构造函数绑定在子对象上

任何一个prototype对象都有一个constructor属性,指向它的构造函数

每一个实例也有一个constructor属性,默认调用prototype对象的constructor属性。