
Javascript基础
油菜花666
致力修炼成为一个二逼女青年的路上。。。
展开
-
import export 和babel
使用babelimport转换成node能使用的语法:安装:npm install babel-cli babel-preset-env -D; 添加.babelrc文件: { "presets": [ [ "env", { "targets": { "node": "current" } ...原创 2020-04-14 16:52:58 · 394 阅读 · 0 评论 -
遍历器生成函数(interator.js)
function makeInterator(arr) { let nextIndex = 0; return { next: function() { if (nextIndex < arr.length) { return { value: arr[nextIndex++], done: false } ...原创 2020-04-10 13:55:00 · 311 阅读 · 0 评论 -
JavaScript this的5中应用场景
用一句话总结this的指向:this是在调用函数的时候,根据执行上下文所动态决定 。应用场景一:当函数自然执行的时候,this是undefined或者window;例如function myFunction() { console.log('this', this); }myFunction()//这种如果使用严格模式,则this是undefined应用场...原创 2020-02-24 10:26:52 · 176 阅读 · 0 评论 -
js 闭包
概念:有权访问两一个函数作用域中的变量的函数--->能够读取其他函数内部变量的函数function demo () { var top = ''; function c() { xxx.innerHTML = top; }}闭包在工作中的使用:...原创 2020-02-23 10:42:49 · 118 阅读 · 0 评论 -
js执行上下文
当函数执行的时候,会创建一个称为执行上下文(execution context)的环境,分别为创建阶段和执行阶段两个阶段;创建阶段:指函数被调用但还没有执行任何代码时,此时创建了一个拥有三个属性的对象:executionContext = { scopeChain: {}, // 创建作用域链{scope chain} variableObject: {}, //...原创 2020-02-19 13:27:59 · 163 阅读 · 0 评论 -
js专业术语
常量 、变量、数据类型形参、实参匿名函数,具名函数、自执行函数函数声明、函数表达式堆、栈同步、异步、进程、线程等以上专业术语你都熟悉吗?...原创 2020-02-19 10:39:15 · 614 阅读 · 0 评论 -
学习如何手撸类似promise类---DIYPromise类(未完)
/*DIYPromisee类必须接收一个函数参数(也就是需要执行异步任务的函数),该函数将在传入之后立即执行,并传入DIYPromise对象下的两个方法resolve和reject*/class DIYPromise { /* DIYPromise状态有三种: pending => 初始状态 resolve =>成功 reject =&...原创 2020-02-14 19:06:01 · 1443 阅读 · 0 评论 -
js 字符串'false'或者'true'转换成boolean大方法
方法一:JSON.parse('false')注意:new Boolean('false')这个时候,得到的值是布尔类型的true方法二:String.prototype.bool = function() { return (/^true$/i).test(this);};console.log('true'.bool());...原创 2019-12-17 15:37:30 · 3588 阅读 · 0 评论 -
three.js入门实例
<!DOCTYPE html><html><head> <title>Example1</title> <script type="text/javascript" src="../libs/three.js"></script> <style> body ...原创 2019-09-04 16:39:47 · 282 阅读 · 0 评论 -
记录一下有用的js方法(持续更新)
1.深拷贝export function deepClone(value) { if(value == null) { return value; } if(typeof value !== 'object') { return value } if(value instanceof RegExp) { return new RegExp(value)}...原创 2019-09-04 11:42:29 · 155 阅读 · 0 评论 -
js数组迭代器
every():该函数一旦返回false,则立即停止当前迭代; var numbers = [1,2,3,4,5,6,7,8,9,10]; var everyResult =numbers.every(function(item, index, array) { console.log("当前"+index); return item > 0;//或者(...原创 2019-03-06 22:03:07 · 838 阅读 · 0 评论 -
javascript数据结构与算法(笔记)---散列表(未完)
// 散列表/** put(key,value): 向散列表添加一个新的项* remove(key): 根据键值从散列表中移除值* get(key): 返回根据键值检索到的特定的值*/function HashTable() {var table = [];var loseloseHashCode = function(key) { // java...原创 2019-02-27 10:44:30 · 187 阅读 · 0 评论 -
javascript数据结构与算法(笔记)---字典
// 以Map类为基础 /* * set(key, value): 向字典中添加新元素 * remove(key): 通过使用键值来从字典中移除键值对应的数据值 * has(key):如果某个键值存在于这个字典中,则返回true,否则返回false * get(key):通过键值查找特定的数值并返回 * clear():将这个字典中的所有元素全部...原创 2019-02-27 10:13:04 · 140 阅读 · 0 评论 -
javascript数据结构与算法(笔记)---集合、交集、并集、子集
<script> //以Set类的骨架 /* * add(value) 向集合添加一个新的项 * remove(value) 从集合移除一个值 * has(value) 如果值在集合中,返回true,否则返回false * clear() 移除集合中所有的项 * size() 返回集合所包含元素的数量 //size方法的...原创 2019-02-26 16:50:23 · 204 阅读 · 0 评论 -
javascript数据结构与算法(笔记)---队列
<script> // 队列:先进先出 FIFO: first in first out // function Queue() {} // 创建队列类 function Queue() { var items = []; // 保存队列里面的元素 /* * enqueue(elements):向队列尾部添加一...原创 2019-02-26 15:18:39 · 164 阅读 · 0 评论 -
javascript数据结构与算法(笔记)---栈
<script> // 栈:后进先出 LIFO:last in first out // function Stack() {} // 创建栈类 function Stack() { var items = []; // 保存栈里面的元素 /* * push(elements)-->添加一个(或者多个)新...原创 2019-02-26 14:34:02 · 132 阅读 · 0 评论 -
javascript数据结构与算法(笔记)---树
<script> /* *树类中实现的方法 * insert(key): 向树中插入一个新的键 * search(key): 在树中查找一个键,如果节点存在,则返回true,如果不存在则返回false * inOrderTraverse: 通过中序遍历方式遍历所有节点 * preOrderTraverse: 通过先序遍历方式遍历所有节点...原创 2019-02-28 11:12:21 · 131 阅读 · 0 评论 -
javascript数据结构与算法(笔记)---双向链表
//链表 /* * LinkedList 数据结构还需要一个Node辅助类,Node类表示要加入列表的项,它包含一个element属性, * 即要添加到列表的值,以及一个next属性,即指向列表中下一个节点项的指针 * append(element): 向列表尾部添加一个新的项 * insert(position, element):在列表的特定位置插入...原创 2019-02-27 16:29:58 · 125 阅读 · 0 评论 -
JS面向对象之工厂模式和构造函数
工厂模式:1、面向对象中的封装函数//工厂模式 function create(name, age, job) { var obj = new Object(); obj.name = name; obj.age = age; obj.job = job; obj.show = function() { cons...原创 2018-04-02 13:22:01 · 271 阅读 · 0 评论 -
JS-面向对象之对象引用是什么和它的问题
function CreatePerson(name, age, job) { this.name = name; this.age = age; this.job = job; this.showName = function() { console.log(this.age +"岁的"+ this.name+ "是一名" + th...原创 2018-04-02 14:09:48 · 842 阅读 · 0 评论 -
JS-面向对象之原型学习
原型:prototype 改写对象下面公用到的方法或属性,让公用的方法和属性在内存中只存在一份(好处就是提供性能)要写在构造函数的下面可以类比css中的class 而普通方法则类比css中的style首先优先级方面的问题: 例如 var num = {}; num.number = 10 Object.prototype.number = 20; console.l...原创 2018-04-02 15:49:48 · 134 阅读 · 0 评论 -
JS面向对象学习之普通面向过程式选项卡编写(笔记)
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>传统原创 2018-04-02 20:51:04 · 163 阅读 · 0 评论 -
JS-面向对象之自动播放选项卡
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>面对原创 2018-04-02 23:42:02 · 442 阅读 · 0 评论 -
JS面向对象之JS是基于原型的程序
2018年4月3日 天气晴朗 复习昨天学习:1、什么是面向对象,面向对象该怎么写?(首先要写一个构造函数,然后添加属性,添加方法)function 函数名(){//函数名首字母大写 this.属性} 函数名.prototype.方法名 =...原创 2018-04-03 10:50:22 · 243 阅读 · 0 评论 -
JS面向对象之什么是包装对象(笔记)
包装对象: 基本类型都有自己对应的包装对象(string-->String; number --> Number; Boolean -->Boolean)思考:基本类型有哪些?引用类型又有哪些? var str = new String('helllo'); console.log(typeof str); //object 这个时候str就是不是基本类型,而是对象...原创 2018-04-03 11:10:44 · 550 阅读 · 0 评论 -
JS面向对象之原型链
什么是原型链?原型链就是实例对象与原型之间的连接: function Example() { this.num = 10;//如果注释掉这行,结果是? } Example.prototype.num = 20;//如果注释此行以及上一行,结果是什么呢? Object.prototype.num = 30; var E1 = new Exam...原创 2018-04-03 13:54:31 · 181 阅读 · 0 评论 -
js数组的排序
1.javascript的sort()方法:<script> var array = [ 1, 4, 9, -7, 0, 11, -10, 49, -60, 78]; function compare(val1, val2) { return val1 - val2; } console.log(array.sort(compare)...转载 2018-10-18 17:53:20 · 523 阅读 · 2 评论 -
字符串反转
1、var strings = '952863174';console.log(strings.split('').reverse().join(''));2、var strings = 'ka3ogaj4jon5vuyn9ug7u'; function sortString(str) { if(str.length === 0 || str.length =...原创 2018-10-16 12:02:51 · 112 阅读 · 0 评论 -
数组去重
var array = [8, "国庆", "10-01", {"title": "最新资讯"}, [5, "a"], "国庆", {"title": "最新资讯"}, 8];1、定义一个新的数组,存放原数组的第一个元素,再讲原数组跟新数组一一比较,弱不同则存放到新数组中。<script> var ar原创 2018-10-19 10:41:26 · 107 阅读 · 0 评论 -
js递归
有数字10,打印10次,从10-1,用递归调用,打印出来:function echo(n) { if(n < 0) { return ; } console.log(n); echo(--n); } echo(10); ...原创 2018-10-20 17:17:11 · 368 阅读 · 0 评论 -
javascript--筛选
<script> var shopsList = [ { imgUrl:'', size: '4.0-4.5英寸', system: 'ios', www:'联通3G', name:'苹果', volume:100000, price: 5000 ...原创 2018-11-20 17:13:08 · 300 阅读 · 0 评论 -
BOM 浏览器对象模型
window.close();1、ff:无法关闭; chrome:直接关闭; IE:询问用户是否关闭;2、window.navigator.userAgent =>浏览器信息3、window.location => 浏览器地址信息4、window.location.search => url问号(?)后面的内容5、window.lo...原创 2019-01-29 17:14:20 · 98 阅读 · 0 评论 -
javascript数据结构与算法(笔记)---链表
//链表 /* * LinkedList 数据结构还需要一个Node辅助类,Node类表示要加入列表的项,它包含一个element属性, * 即要添加到列表的值,以及一个next属性,即指向列表中下一个节点项的指针 * append(element): 向列表尾部添加一个新的项 * insert(position, element):在列表的特定位置插入...原创 2019-02-27 15:18:15 · 131 阅读 · 0 评论 -
JS-面向对象
1、什么是面向对象编程?(面向对象的写法和面向编程写法的不同在哪里)2、(OOP)面向对象编程的特点:⑴抽象:抓住核心问题;⑵封装:只能通过对象来访问方法;⑶继承:从已有对象上继承出新的对象;⑷多态:多对象的不同形态;3、面向对象的基本写法和组成:对象的组成:Ⅰ、方法(行为、操作)——函数:过程、动态的Ⅱ、属性——变量:状态、静态的创建面向对象程序尤其要搞懂this的指向基本写法:var obj ...原创 2018-04-02 11:42:08 · 174 阅读 · 0 评论