JS高级. 01 复习JS基础
1. JavaScript 包含: ____, ____, 和 ____.
2. JavaScript 的基本类型有 ____, ____, 和 ____.
3. JavaScript 的复合类型有 ____, ____, ____, ____, ____, ____, 和 ____. 还有两个核心类型: ____ 和 ____.
4. JavaScript 还有两个空类型: ____ 和 ____.
5. JavaScript 中获得类型的运算符是 ____. 使用该运算符返回的结果是什么类型? ____.
6. JavaScript 中 === 和 == 有什么区别? ____.
7. JavaScript 中 in 运算符有什么用? ____.
8. JavaScript 的关系运算符是: ____.
9. JavaScript 中创建对象使用 ____ 运算符.
10. 什么是引用类型, 什么是值类型? ____.
11. JavaScript 什么叫逻辑中断: ____.
12. JavaScript 中 delete 运算符的作用是 ____.
13. JavaScript 中循环语句有 ____ 种. 分别是: ____, ____, ____, 和 ____.
14. JavaScript 中分支语句有 ____ 种. 分别是: ____, ____.
15. JavaScript 中跳转语句 break 与 continue 如何使用? ____.
JavaScript 包含三大部分:
ECMAScript: 规定js的语法规范
DOM:Document Object Model : 提供了一套完整的操作页面元素api
BOM:Browser Object Model :浏览器对象
JS基本类型
d) string\boolean\number
复杂数据类型(引用类型):
- Array Date Obeject RegExp String Boolean Number
- 核心类型Object function
- 获取数据类型typeof()
- (typeof是个关键字)
- (返回值是字符串)
- typeof 变量名;
- 首字母大写的是函数
- 空类型
- null:
- 变量不可能为null值,除非手动设置
- 解除对象的占用的时候给对象赋值null
- undefined:定义之后未赋值
===和==的区别
===:类型和数值必须全等
==:数值相等即可
in关键字
- 用法一
- for…in:变量对象的键
- for(var 变量;in 对象名)
- 对象的键名为字符串类型
- 用法二
- 判断属性(数值就是索引值)是否存在对象中
- ‘关键字’ in 对象名
a) 判断关键字是否在关键字
b) 返回值是boolean类型
- 用法三
- 判断数组是否存在某个键
- in关键字判断数组的时候是判断索引是否存在,而不是值
- 如何判断数组中是否存在指定的值
- indexOf
- ar.indexOf(要查找的值)
- 找到返回指定元素的索引值,
- 没有找到返回-1
console.log(3 in arr ); // 判断数组中是否有3这个索引值
console.log(arr.indexOf('b')); // 判断数组中是否含有'b'这个值
关系运算符:> < >= <= =
创建对象使用new对象
a) var obj = new Date();
b) GMT:格林尼治标准时间
c) UTC:世界协调时间
类型
- 值类型
a) 储存的就是数据本身的变量 就是值类型数据
2. 引用类型Object
- 储存的是数据在内存中的地址,数据类型在内存中单独储存 就是引用类型数据
- 函数调用时,默认将实参赋值给形参
- 形参没有具体的数值
- 看到对象字面量和{大括号}才会创建新对象
- 值类型做函数的参数
- 函数内部的变量,也就是形参和实参只是简单的赋值操作,两个数据独立储存
- 在函数内部对形参进行修改,不会影响外面的值
- 引用类型做函数的参数
- 是把实参存储的地址赋值给了形参,在函数内部,形参同样指向该对象
- 所以在函数内部对该变量进行修改,会修改外部的值
- 如果在函数内创建对象,修改一个值不会影响另外一个.两个独立存在
- 引用类型中除了function 都是object 类型

var obj = {
num:5
};
console.log(obj); //输出num的值是5
function num(number) {
number.num = 100;
number = {
num:15555 //函数内创建的对象和函数外的互不影响
}
return number;
}
num(obj);
console.log(obj);//输出num的值是100

对象的动态特效
- 对象的动态特性是指,在对象创建出来之后,为对象添加新的属性或者方法
- obj.satHello = function(){方法;}
- obj.xxx = yyy;
- 如果xxx存在,是进行修改
- 如果xxx不存在,是添加属性或者方法
- obj.[”属性名”]:可以用这种方法取值,也可以新增属性或者方法
- obj[0] = ‘oooo’;可以添加成功,因为这里会进行一个隐式转换
- [ ]内的值会被隐式为转换字符串类型
- 把对象{}转换层字符串object object
- 动态添加属性/方法
- obj.新属性 = 新值
- obj[新属性] = 新值

/**
* 对象的动态特性
* 在创建一个对象之后,可以给对象追加属性和方法
*/
var prople = {
name:'jack',
age:18
}
console.log(people); // 输出那么 和age 两个属性
people.sex = '男'; // 追加属性
prople.sayHallo = function () { // 追加方法
console.log("我叫jack");
}
console.log(prople); //输出追加后的对象,name age sex 三个属性和sayHallo这个方法
prople.sayHallo(); //输出 我叫jack prople['height'] = 180;
console.log(prople);//输出追加后的对象,name age sex height四个属性和sayHallo这个方法

逻辑中断(短路运算)
true || false // 返回true
false || true/false // 返回true/false
表达式一 || 表达式二
1为真 返回1
1为假 返回2
true && false. //. 返回false 第一个真。返回第2个
false && true //. 返回false。 第一个假 返回第1个
表达式一 || 表达式二
1为真 返回2
1为假。返回1
delete运算符的作用
- 用来删除对象的属性,还有删除未使用var声明的变量
- 不能删除实用var声明的变量
- 删除一个不存在的属性,也会删除成功
a) delete 对象名.对象属性名;
4. 返回值是删除是否成功false/true
5. 如果删除的属性存在与原型中,返回true,但是并未删除
循环语句
- for
- 跳出循环:continue
- while
- do…while
- for…in
分支语句
if…else
swith…case
函数
函数声明
function name(){}
函数表达式
- 在使用函数表达式声明函数的时候,function后面可直接跟函数名(name)
- var fn = function name(){}
- 但是这个函数名(name),直线在函数内部使用,外部无法访问
- var fn = new Function(“”)

//解析会被提前
function name(){
//函数体
}
//解析不会被提前,使用必须在定义之后
var fun0 = function () {
//函数体
}
//解析不会被提前,使用必须在定义之后
//创建一个函数对象
var fun = new Function("");//函数体放 引号中间
//创建一个匿名函数
var a= (function (){/*函数体*/})(); //创建完毕直接调用
Dom操作
- 增
a) document.createElement
b) appendChild
2. 删
a) removeChild
3. 改
a) style
b) id
c) className
d) innerHTML
e) innerText
f) ...
4. 查
a) getElementById
b) getElementsByTagName
c) getElementsByClassName
异常处理
捕获语句:try catch finally

try{
// 可能出现的代码
// 无法捕获语法错误
}
catch(e){
//出现错误后执行的代码
}
finally {
// 必然会执行的代码
// node.js
// 一般做释放资源的操作
}

异常最大的特征: 出现异常之后,后面的代码将不会执行
手动抛出异常
1· 使用throw 关键字
2·错误代码(编号),错误信息
3·throw 可以在外部定义

try{
a();
}catch(e){
// console.log(e);
// e 是错误信息
throw( 'a() 是一个未定义的函数)' );
// throw( e )相当于不写这个异常处理函数;
// throw() 手动抛出异常,括号内写抛出的自定义信息
}
finally {
console.log("这里的一定会执行") ;
}

面向对象
1、什么是对象!!!!
万物皆对象
2、对象的特征
对象的特征就是用来描述对象的相关信息
、比如一个人对象,特征就有:name age gender height
3、对象的行为
对象行为就是描述对象的行为
比如一个人对象,行为就有:吃 跑 跳 睡 唱 抽烟 喝酒 烫头
4、在JS当中 什么是对象?
键值对儿的组合就是
5、现实生活中的对象的特征对应到JS当中是对象的属性!
6、现实生活中的对象的行为对应到JS当中就是对象方法!
createElement(‘div’):创建一个div
面向对象是对面向过程的封装
a) 封装的意义就是复用
编写代码规则DRY
a) don’t repeat yourself
使用函数封装带来的问题:
1.全局变量污染
2.代码结构不够清晰,维护不方便
使用对象进行封装后的优势
1.暴露在全局的只有一个对象名 不会造成全局变量污染
2.使用对象将代码进行功能模块的划分,有利于日后的维护

function createEle(box) {
var ele = document.createElement('div');
ele.style.width = '100px';
ele.style.height = '100px';
ele.style.backgroundColor = '#f00';
ele.style.margin = '0 auto';
box.appendChild(ele);
}

使用对象进行封装。 对象封装

var obj = {
jQy: {
Id: function (ele) {
return document.getElementById(ele);
},
Class: function (ele) {
return document.getElementsByClassName(ele)[0];
}
}
}

jQuery 中 创建对象 直接添加即可
$('body').append("<div style='width: 100px;height: 100px;margin: 0 auto;'></div>")
JS高级. 01 复习JS基础的更多相关文章
- JS OOP -01 面向对象的基础
JS面向对象的基础: 1.用定义函数的方式定义类 2.用new操作符获得一个类的实例 3.使用 [ ] 引用对象的属性和方法 4.动态添加,修改,删除对象的属性和方法 5.使用 { } 语法创建无类型 ...
- JS高级语法与JS选择器
元素(element)和节点(node) childNode属性和children属性的区别 <!DOCTYPE html> <html lang="en"> ...
- 《Node.js高级编程》之Node 核心API基础
Node 核心API基础 第三章 加载模块 第四章 应用缓冲区 第五章 事件发射器模式简化事件绑定 第六章 使用定时器制定函数执行计划 第三章 加载模块 本章提要 加载模块 创建模块 使用node_m ...
- Node.js 教程 01 - 简介、安装及配置
系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...
- JS高级前端开发群加群说明及如何晋级
JS高级前端开发群加群说明 一.文章背景: 二. 高级群: 三. 加入方式: 四. 说明: 一.文章背景: 去年年初建了几个群,在不经意间火了,一直排在“前端开发”关键字搜索结果第一名.当然取得这 ...
- Node.js高级编程读书笔记Outline
Motivation 世俗一把,看看前端的JavaScript究竟能做什么. 顺便检验一下自己的学习能力. Audience 想看偏后台的Java程序员关于前端JavaScript的认识的职业前端工程 ...
- JS高级前端开发群加群说明
JS高级前端开发群加群说明 *一.文章背景: *二. 高级群: *三. 加入方式: *四. 说明: 一.文章背景: 去年年初建了几个群,在不经意间火了,一直排在"前端开发"关键字搜 ...
- Ext.js高级组件
第二章:Ext.js高级组件 grid组件 普通方式 表格面板类Ext.grid.Panel xtype(别名):gridpanel.grid title标题.renderTo渲染至.width宽.h ...
- js高级之函数高级部分
基于尚硅谷的尚硅谷JavaScript高级教程提供笔记撰写,加入一些个人理解 github源码 博客下载 原型与原型链 prototype : 显式原型属性,它默认指向一个Object空对象(即称为: ...
随机推荐
- Ubuntu真机安装
Ubuntu真机安装 1.Ubuntu安装: (1)启动盘制作: a.下载启动盘制作工具Universal USB Installe,下载地址: b.下载Ubuntu系统镜像,到本地磁盘,官方下载地址 ...
- Qt之QSS(Q_PROPERTY-原始属性)
http://blog.csdn.net/liang19890820/article/details/51698536 版权声明:进步始于交流,收获源于分享!纯正开源之美,有趣.好玩.靠谱...作者: ...
- Mysql 服务无法启动解决办法
1.我使用的是MySQL-5.7.10-winx64 版本,在安装后启动服务时出现 “服务无法启动”错误 2.解决办法为删除安装目录中的data文件,然后打开cmd调到自己的安装目录下输入mysqld ...
- raw_input与input的区别
1. 版本差异 raw_input——>python2版本 input——>python3版本 2. 输入格式差异 就是raw_input()随便输都是字符串,而input()必须按照Py ...
- 【Leetcode】【Easy】Palindrome Number
Determine whether an integer is a palindrome. Do this without extra space. 判断一个整数是不是回文整数(例12321).不能使 ...
- Android下最小化程序到后台代码
procedure TForm1.Button4Click(Sender: TObject); var Intent: JIntent; begin Intent := TJIntent. ...
- 给Retext进行配置:语法高亮、数学公式、自定义样式
由于转到了Ubuntu下,本来在Windows平台下使用的一直是MarkdownPro2,而且进行了破解,十分好用.转到Ubuntu下后,MarkdownPro2不能够使用了,找了下Linux平台中的 ...
- Android进阶笔记10:ListView篇之ListView显示多种类型的条目(item)
ListView可以显示多种类型的条目布局,这里写显示两种布局的情况,其他类似. 1. 这是MainActivity,MainActivity的布局就是一个ListView,太简单了这里就不写了,直接 ...
- Maximum Profit
Maximum Profit You can obtain profits from foreign exchange margin transactions. For example, if you ...
- 2018.12.26 Mac下的Eclipse在编辑Spring配置文件xml时自动提示类class包名配置
1.先查看下自己的Eclipse是什么版本,步骤如下: 2.选择Install New Software 3.输入网址 http://dist.springsource.com/release/TOO ...