
javascript
桃子阿哥
希望能成为一个很有钱的老板, 可以让我的员工有双休, 有六险一金, 朝九晚五, 偶尔加班, 每个人带着希望去工作
展开
-
javascript 中闭包的例子
闭包含义:一般函数;function outer() { var localVal = 30; return localVal}outer() //30outer 函数里有一个局部变量 localVal, 值为 30. 然后 return 出去对于一般函数, 在调用结束后, 实际上局部变量可以释放了.具体释放要取决于垃圾回收机制这是一般函数的情况.但对于 javascript中的函数也是对象,并且函数也可以作为返回值, 也可以作为传参, 函数里也可以嵌套函数.实例如下:原创 2020-10-11 22:54:37 · 412 阅读 · 0 评论 -
javascript中的 bind 的函数柯里化功能
什么是函数颗粒化?把一个函数拆分成多个单元function add(a,b,c) { return a + b + c}var func = add.bind(undefined,100)func(1,2) //103var fun2 = func.bind(undefined,200);func2(10) //310比如 add 函数是把 abc 三个参数相加返回, 但是有时不需要把这个函数一次都调用完,而是调用一次把前几个函数传完得到一个函数再调用再传入第三个值然后通过原创 2020-10-11 22:14:25 · 286 阅读 · 0 评论 -
javascript 中的 this几种情况
全局的 this(浏览器)console.log(this.document === document); //trueconsole.log(this === window); //truethis.a = 37; // 相当于创建了一个全局变量 aconsole.log(window.a); //37一般函数的 this(浏览器)function f1() { return this;}f1() === window; //true, global object这里在浏览器原创 2020-10-11 20:14:47 · 511 阅读 · 1 评论 -
javascript 的函数声明与表达式对比
不同的调用方式函数声明与表达式函数声明:function add (a,b) { a = +a; b = +b; if (isNaN(a) || isNaN(b)) { return; } return a + b}---------------------函数表达式:var add = function(a,b) { // do sth.}或者匿名函数(function(){ // do sth.})()或者将函数对象作为返回值(函数也是对象)return原创 2020-10-10 23:47:22 · 639 阅读 · 0 评论 -
JS中的Array数组方法小整理
join数组专为字符串var arr = [1,2,3];arr.join(); //"1,2,3"reverse数组逆序(会影响原数组)var arr = [1,2,3];arr.reverse(); //[3,2,1]arr; //[3,2,1]sort按字符串排序(会影响原数组)var arr = ["a","d","c","b"]arr.sort() //["a","b","c","d"]arr = [13,24,51,3];arr.sort() //[13,2原创 2020-10-10 23:01:48 · 198 阅读 · 0 评论 -
JS数组方法实现对象中的年龄排序
arr = [ { age: 25 }, { age: 39 }, { age: 99 } ] arr.sort(function(a,b) { return a.age - b.age }); arr.forEach(function(item) { console.log('age',item.age) }) // age 25 age 39 age 99原创 2020-10-10 17:15:09 · 2600 阅读 · 0 评论 -
Javascript实现一个字符串重复出现n 次
function repeatString(str,n) { return new Array(n+1).join(str);}repeatString()//参数 str: 表示要重复的字符串//参数 n: 表示要重复几次通过 new Array()构造一个数组, 数组的长度是 n+1, 通过 join 方法把想要重复的字符串作为分隔符举例说明:var arr = [1,2,3];arr.join("_"); // "1_2_3"将"_"作为分隔符,在 arr 中出现 arr.原创 2020-10-10 16:55:09 · 2312 阅读 · 1 评论 -
javascript 中 for in 的坑
var p;var obj = {x:10, y:20}for(p in obj){}用 for in 遍历 obj 对象中的属性,1. for in 顺序不确定, 具体顺序依赖引擎的实现 所以需要按顺序遍历数组或者对象的属性时, 不要用 for in2. enumerable 为 false 时不会出现3. for in对象属性时受原型链影响...原创 2020-10-09 17:22:37 · 162 阅读 · 0 评论 -
javascript 的 try 和 catch 语句
try{ throw "test";} catch (ex) { console.log(ex); //test} finally { console.log('finally')}它的执行流程:首先执行 try 块中的代码, 如果抛出异常由 catch 捕获并执行, 如果正常的话, catch 中的代码被忽略.不管有没有异常最后都执行 finally 的代码.try 后面必须接一个 catch 或者 finally因此 js 中的 try catch 语句有三种形式1. tr原创 2020-10-08 22:05:31 · 442 阅读 · 0 评论 -
JS 中检测类型的方法
typeofinstanceofObject.prototype.toStringconstructorduck type注意以上都是返回字符串, 适合函数对象和基本类型的判断.但是数组也是对象, 依然返回对象原创 2020-10-07 23:21:19 · 123 阅读 · 0 评论 -
JS的包装对象: 为什么能打印字符串的 length 长度
var str = "string"; //定义 str 为一个字符串, 基本类型alert(str.length) // 6str.o = 10 //把它像对象一样添加一个属性赋值为 10alert(str.o) //undefined 输出结果是 undefined再定义一个var strObj = new String("string") 它是一个对象类型,且这个对象类型是 string 对应的包装类基本类型不是一个对象, 所以它不该有属性和方法. 但是str.length 却可原创 2020-10-07 23:04:22 · 361 阅读 · 0 评论 -
Promise和类几个特性演示
写给自己看的. 没有什么目录和顺序写法new Promise() 这就是个基本的 promise 它有个 then 方法new Promise().then();new 的时候可以传一个异步函数new Promise((resolve, reject) => { // 异步函数 // 函数里的参数就是 resolve 和 reject, 表示异步请求的成功或失败 $.ajax({ url: 'http://haaaa.com/user/get_user_info.d原创 2020-09-28 22:57:13 · 119 阅读 · 0 评论 -
js 箭头函数 没有独立作用域演示
没有独立作用域var obj = { commonFn : function() { console.log(this) }, arrowFn : () => { console.log(this) }}第一个打印 obj 本身第二个打印出 window 的作用域obj.commonFn(); //this 指向 它的调用者obj 作用域obj.arrowFn(); //这个 function 没有作用域, 所以和 obj 共享一个作用域, obj 在原创 2020-09-28 21:03:45 · 430 阅读 · 0 评论 -
JS 将数组一组一组分割
// 将data数组分割成[[1,2,3],[4,5,6],[7,8,9]]var data = [1,2,3,4,5,6, 7, 8,9] var newArr = []for(i=0; i<data.length; i+=3) { newArr.push(data.slice(i, i+3))}console.log(newArr) //[[1,2,3],[4,5,6],[7,8,9]]原创 2020-09-21 11:47:18 · 776 阅读 · 0 评论 -
Javascript 实现一段字符串反转
Hi Baby 变成 Baby Hiconst str = 'Hi Baby'function reverse(str) { // 首先将传入字符串以空格分隔, 变成一个数组 let arr = str.split('') // console.log(arr) 打印的是["Hi", "Baby"] let newArr = []; // 设置一个新数组用来存放反转后的结果 for(i=0; i<arr.length - 1; i++) { // for 循环让新数组原创 2020-09-17 22:53:47 · 215 阅读 · 0 评论 -
JS实现阶乘并做缓存处理
1. 没做缓存 function Algorithm(num) { if(num === 0 || num === 1 ) { return 1 } else { return num * Algorithm(num - 1) } } console.log(ag(5)) //1202. 做缓存处理 function cacheA() { const cache = {}原创 2020-08-23 12:06:21 · 192 阅读 · 0 评论 -
JS数据结构与算法入门(二) - 数据结构之“栈”
1. 栈是什么?一个后进先出的数据结构JS中没有栈, 但可以用Array实现栈的所有功能const stack = []stack.push(1);stack.push(2);const itme1 = stack.pop();const itme2 = stack.pop()2. 什么场景下用栈?需要后进先出的场景比如: 十进制转二进制, 判断字符串的括号是否有效, 函数调用堆栈…十进制转二进制100011 后出来的余数反而要排到前面把余数依次入栈, 然后再出栈, 就可原创 2020-08-18 18:24:01 · 263 阅读 · 1 评论 -
React原理基础相关面试
1. 函数式编程一种编程范式, 概念较多纯函数 ( 返回新值是纯函数最重要的特点之一 )不可变值 ( setState和redux中的action的时候都是使用不可变值 )2. vdom和diff算法h函数vnode数据结构:patch函数Diff算法只比较同一层级, 不跨级比较. tag不同, 直接删掉重建, 不再深度比较tag和key, 两者都相同, 就认为是相同节点, 不再深度比较Vue2.x Vue3.0 React三者实现vdom细节都不同, 但核心概念和思路一样3. J原创 2020-08-17 23:07:57 · 495 阅读 · 0 评论 -
JS数据结构与算法入门(一) - 数据结构与算法简介
1. 数据结构与算法简介数据结构: 计算机存储, 组织数据的方式, 就像锅碗瓢盆算法: 一系列解决问题的清晰指令, 就像食谱两者关系: 程序 = 数据结构 + 算法将要学习的数据结构:有序的: 栈 , 队列 , 链表无序的: 集合 , 字典树 , 堆 , 图将要学习的算法:链表: 遍历链表, 删除链表节点树, 图 : 深度 / 广度优先遍历数组: 冒泡 / 选择 / 插入 / 归并 / 快速排序 , 顺序 / 二分搜索2. 时间复杂度和空间复杂度时间复杂度:一个函数,原创 2020-08-17 20:25:30 · 219 阅读 · 0 评论 -
js中for,forEach,for in,for of的简单实例对比
1. for 遍历数组let array = [1,2,3,4,5]; for (var i = 0; i < array.length; i++) { console.log(i,array[i]); console.log(typeof i)} // 打印结果 注意这里的i也就是数组index打印的类型是number0 1number1 2 number2 3number3 4number4 5number2. for in 遍历数组原创 2020-07-29 12:31:24 · 199 阅读 · 0 评论 -
JS 让“abc def“ 变成 “def abc“排列
let str = "abc def"let strArr = str.split(' ')let result = strArr[1] + str[0]原创 2020-07-27 16:29:42 · 405 阅读 · 0 评论 -
JS中==和===的应用场景
首先, == 隐含意思是尽量让等号两边转换后相等, 也就是发生类型转换;比如如下1 == '1' // true1 == false // truenull == undefined // true所以, == 会产生预想之外的效果, 因此尽量少用.少之又少的使用场景:做if判断 if ( obj.hi == null ) {} // 上面算是以下代码的简写 if ( obj.hi === null || obj.hi === undefined ) {}所以, 实际工作中尽量原创 2020-07-26 22:39:18 · 543 阅读 · 0 评论 -
让一个字符串只显示第一个字符, 其余星号代替
let str = '你好,世界'function formatStr() { return str.substring(0,1) + new Array(str.length).join('*')}let hi = formatStr()console.log(hi)原创 2020-07-11 00:11:55 · 2037 阅读 · 0 评论