
js
捡起半颗盐
不需要华丽的外表,只追求实在的技术
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
实现移动web或者小程序等菜单选中居中
仔细观察上图;只要把 scrollLeft计算出来然后获取选中的元素的父元素 执行scrollTo(scrollLeft, 0)就可以实现滚动到居中位置;具体代码如下:const clickTab = (e) => { const { offsetWidth, offsetLeft } = e.target; // 元素的宽度 const { clientWidth } = document.body; // 可视区宽度 const scrollLeft = offset.原创 2022-05-14 18:56:27 · 248 阅读 · 0 评论 -
js立即执行函数 (IIFE)
特点1、立即执行2、用完释放(function(){})()(function(){}())原创 2019-06-03 20:55:13 · 295 阅读 · 0 评论 -
js对象的相关方法
1、instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性参数:object(要检测的对象.)constructor(某个构造函数)function Person(){};var p =new Person();console.log(p instanceof Person);//true2、hasOwnProperty表示是否有自己的...原创 2019-06-03 19:51:49 · 308 阅读 · 0 评论 -
前端基础面试题收集
HTML基础1、什么是<!DOCTYPE >?是否需要在HTML5中使用?<!DOCTYPE>是关于页面写入了什么版本的HTML的指令。<!DOCTYPE>标记没有结束标记,它不区分大小写。2、HTML5有哪些的新特性?二维画图中的元素媒体播放的 和元素支持本地存储新的内容特定元素,如<section>,<a...原创 2019-06-08 23:34:46 · 1836 阅读 · 2 评论 -
隐式转换
隐式转换规则转成string类型: +(字符串连接符) 2…转成number类型:++/–(自增自减运算符) + - * / %(算术运算符) > < >= <= == != === !=== (关系运算符)转成boolean类型:!(逻辑非运算符)...原创 2019-06-07 23:12:43 · 324 阅读 · 0 评论 -
函数形参与表达式"()"
形参和实参是映射关系不管谁改都会变原创 2019-06-07 21:52:11 · 413 阅读 · 0 评论 -
typeof返回哪些数据类型
1.返回数据类型undefinedstringbooleannumbersymbol(ES6)ObjectFunction原创 2019-06-07 21:49:40 · 866 阅读 · 0 评论 -
call、apply、bind方法详解
在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向。对于 apply、call 二者而言,作用完全一样,只是接受参数的方式不太一样。便于记忆,单词字母多的为参数难写的,既数组的形式,反之为普通的带逗号方式特别注意:每个函数执行都会隐式带了一个call/apply 比如:foo...原创 2019-06-07 21:43:39 · 189 阅读 · 0 评论 -
判断是否为数组
在说明如何判断一个对象为数组类型前,我们先巩固下js的数据类型,js一共有六大数据类型:number、string、object、Boolean、null、undefined。除了前四个类型外,null、对象、数组返回的都是object类型;对于函数类型返回的则是function,再比如typeof(Date),typeof(eval)等。接下来进入正题,js判断数组类型的方法。方法一: 使用...原创 2019-06-12 20:20:53 · 9853 阅读 · 0 评论 -
js中的原生元素选择器
当我们想要选择dom中的元素时,第一个想到的就是document.getElementById()和document.getElementsByTagName(),还有针对表单的document.getElementsByName();在h5中我们又有了类选择器:getElementsByClassName(),但这个方法不兼容IE8及以下,我么在使用时还是需要写一个兼容的函数,因为现在还是很多...原创 2019-05-31 23:29:13 · 499 阅读 · 0 评论 -
闭包
闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。闭包的特点:作为一个函数变量的一个引用,当函数返回时,其处于激活状态。一个闭包就是当一个函数返回时,一个没有释放资源的栈区。简单的说,Javascript允许使用内部函数—即函数定义和函数表达式位于另一个函数的函数体内。而且,这些内部函数可以访问它们所在的外部函数中...原创 2019-05-31 22:27:05 · 164 阅读 · 0 评论 -
js作用域及作用域链
原创 2019-05-31 22:07:06 · 152 阅读 · 0 评论 -
js预编译 执行环境中的GO/AO
js运行流程 语法分析–预编译–解释执行1、函数声明会提升到整体最前且内部可执行,变量声明则只声明不执行赋值2、函数预编译则有函数上下文 AO活跃对象,对象中写入形参和变量声明把实参赋值给形参寻找函数声明和赋值函数体...原创 2019-05-31 21:32:32 · 423 阅读 · 0 评论 -
Promise及内部实现
Promise是什么? Promise是JS异步编程中的重要概念,异步抽象处理对象,是目前比较流行Javascript异步编程解决方案之一。这句话说的很明白了,Promise是一种用于解决异步问题的思路、方案或者对象方式。在js中,经常使用异步的地方是Ajax交互。比如在es5时代,jQuery的ajax的使用success来完成异步的:$.ajax({ url:'/xxx', ...原创 2019-06-05 16:03:33 · 376 阅读 · 0 评论 -
async 函数的含义和用法
1、async 函数就是 Generator 函数的语法糖,async 函数就是将 Generator 函数的星号(*)替换成 async,将 yield 替换成 await,仅此而已2、async 函数的实现,就是将 Generator 函数和自动执行器,包装在一个函数里3、同 Generator 函数一样,async 函数返回一个 Promise 对象,可以使用 then 方法添加回调函数...原创 2019-06-05 12:58:14 · 973 阅读 · 0 评论 -
Generator 函数的含义与用法
Generator 函数是协程在 ES6 的实现,最大特点就是可以交出函数的执行权(即暂停执行)。function* gen(x){ var y = yield x + 2; return y;}上面代码就是一个 Generator 函数。它不同于普通函数,是可以暂停执行的,所以函数名之前要加星号,以示区别。整个 Generator 函数就是一个封装的异步任务,或者说是异步任务的...原创 2019-06-05 12:38:54 · 295 阅读 · 0 评论 -
ES6新特性之生成器函数 generator
一、什么是生成器函数?生成器函数是ES6的新特性之一,它是一个在执行时能中途暂时退出,后面重新调用又能重新进入继续执行的一种函数。并且在函数内定义的变量的所有状态不受中途退出的影响。二、语法声明方式:function* 函数名([参数1[, 参数2[, … 参数n]]]) { JS语句 }调用说明:1) 调用生成器对象时会返回一个生成器的迭代器2) 该迭代器中有一个next()方法...原创 2019-05-28 13:43:05 · 220 阅读 · 0 评论 -
new一个对象的过程
使用new关键字调用函数(new ClassA(…))的具体步骤:1. 创建空对象; var obj = {};2. 设置新对象的constructor属性为构造函数的名称,设置新对象的__proto__属性指向构造函数的prototype对象; obj.proto = ClassA.prototype;3. 使用新对象调用函数,函数中的this被指向新实例对象: ClassA....原创 2019-05-28 10:10:53 · 1181 阅读 · 0 评论 -
浅拷贝和深拷贝
浅拷贝浅拷贝可以简单理解为,发生在栈中的拷贝行为,只能拷贝基本值和引用值的地址。实现方式ES6 定义了 Object.assign() 方法来实现浅拷贝。例子:let a = { name: "Tom", obj: { age: 19 }}let b = Object.assign({}, a);console.log(b); //输出:{name: "Tom"...原创 2019-05-27 00:03:08 · 129 阅读 · 0 评论