javaScript高级-基础

JavaScript高级第一天

JS组成

  1. ECMAScript: 规定了JS的语法规范以及标准
  2. DOM:Document Object Model 文档对象模型,提供了一整套操作页面元素的api
  3. BOM:Browser Obect Model 浏览器对象模型,提供了一整套操作浏览器相关信息的api

JS中的数据类型

用typeof可以获取数据类型。

简单数据类型

简单数据类型,即直接保存在变量中的数据类型。
  • string
  • number
  • boolean

复杂数据类型

复杂数据类型,数据保存在别处,变量中只保存数据所存在的地址
  • Object
  • function
  • Array
  • Date
  • Math ---→Math可以直接用点方法进行调用,其他都需要进行new
  • RegExp---→Regular Expression,正则表达式对象
  • String -----→字符串对象
  • Number ---→数字对象
  • Boolean ---→布尔对象

空数据类型

  • Null ---→Null的数据类型会返回一个Object
  • undifined

Array、Date、Math、String

获取数据类型的方式

```js
	typeof data;
	typeof(data);
	//返回值为数据的类型名称,是string类型的
	
	//使用typeof获取复杂数据类型的数据的类型的时候,获取到的都是object
```

数据类型注意点!

复杂数据类型

复杂数据类型的变量名保存的是数据的地址,
简单数据类型直接是数据。

一个保存了地址的变量,赋值给另一个变量,对另一个变量进行操作,相应地址的数据将会被更改。

引用类型和值类型的运算

数组array,[].tostring(),结果为""(空字符串);

对象object,{}.tostring(),结果为"[object object]"(字符串);

当引用类型和值类型相比较时,
1、首先,引用类型执行valueOf()方法,获取返回值,返回值为非引用类型则进行计算;
2、若valueOf后仍为引用类型(例如Object和Array),则继续执行toString方法;

in关键字的使用

for-in

功能: 遍历对象的属性

```js
	for(var key in object){
		//key即对应的属性名称;
	
		//object[key]为key对应属性名称的值;
	}
```

属性名 in 对象

功能: 判断对象能否访问某个属性

```js
	"属性名" in 对象;
	
	tips:返回值为布尔值,该对象是否存在该属性,不存在false,存在true;
```

delete关键字的使用

删除未使用var声明的变量

```js
	delete 变量名;
```
	在访问不存在的变量的时候会报错

tips:delete array[1],这时候删除的是该数组中的索引1,索引1将会消失;

删除对象的属性

```js
	delete 对象名.属性名;
```

tips:如果访问的是对象的不存在的属性,则直接返回undefined;
一些默认属性是不可删除的,返回值表示是否删除成功,但是该值不可靠!

值类型和引用类型

值类型

直接存储的就是数据本身的这种数据,就是值类型的数据

引用类型

存储的是数据的地址,数据单独存储,这种数据就是引用类型的数据

值类型的赋值特征

直接将数据复制一份交给新的变量,两个变量虽然值一样,但是存储空间完全独立,互不影响

引用类型的赋值特征

将数据的地址复制一份交给新的变量,两个变量指向同一个对象,改变其中一个,另外一个也会受到影响

对象的动态特性

对象在创建完成之后,可以随时为对象新增成员,这种特性就是对象的动态特性

点语法

```js
对象名.属性名 = 值;
```

关联数组语法

```js
对象名["属性名"] = 值;
```

逻辑中断

||中断

```js

表达式1 || 表达式2

```

1、如果表达式1为真,则返回表达式1
2、如果表达式1为假,则返回表达式2

&&中断

```js

表达式1 && 表达式2

```

1、如果表达式1为真,则返回表达式2,前真返回后
2、如果表达式1为假,则返回表达式1,前假返回假

break和continue

break

跳出整个循环,继续执行循环之后的代码

continue

跳出本次循环,继续下一次循环

DOM操作

// document.createElement()		创建元素
// document.createAttribute()	创建属性
// appendChild	加入子元素
// innerHTML	内部元素

// removeChild	删除所有子元素
// innerHTML	将innerHTML=""

多得很,回去翻笔记;

document.getElementById()		没有兼容性问题
document.getElementsByTagName()	没有兼容性问题
document.getElementsByClassName()
document.querySelector()	很好用
document.querySelectorAll()	很好用

异常处理

异常处理语句的完整模式

    try{
    	//可能出现异常的代码
    }catch(e){
	    //出现异常后的处理代码
	    //e 异常对象,包含了出现异常的所有信息
    }finally{
	    //不管是否出现异常,都会执行的代码
	    //一般用来释放资源
	    //finally语句可以不写
    }

	tips:在封装框架的时候时常用try;
		e表示被捕获的异常信息;

如何手动抛出异常

throw 任何东西;

	throw的内容会被catch捕获,并赋值给e
	throw关键可以手动的抛出异常

面向对象的基本概念

什么是面向过程

是一种思维方式,将解决问题的关注点放到解决问题的每一个详细的步骤上

什么是面向对象

是一种思维方式,将解决问题的关注点放到解决问题所需要的一系列对象身上

面向对象和面向过程的关系

面向对象是对面向过程的封装!

对象的概念

现实生活中的对象:万物皆对象,只要能具体到某一个个体上,这个个体就是一个对象
js中的对象: 无序的键值对儿的集合

转载于:https://my.oschina.net/zhongjunhui/blog/857927

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值