JS学习
辣爷
nothing
展开
-
JS-Learning|数值转换之Number()、parseInt()和parseFloat()
把非数值转换为数值有三个函数:Number()、parseInt()和parseFloat(),规则如下:Number()如果是Boolean值,true和false将分别被转换为1和0;如果是数字值,只是简单的传入和返回;如果是null值,返回0;如果是undefined,返回NaN;如果是字符串,遵守以下规则:如果字符串只包含数字,则将其转换为十进制数值,即“1”会变成1,“1...原创 2020-02-07 11:24:41 · 202 阅读 · 1 评论 -
JS-Learning | 手写实现call、apply和bind以及理解它们的区别
call、apply和bind的区别call、apply和bind的作用都是改变this的指向。其中,call和apply的区别在于传参的方式不同。call是一个一个的传,apply可以将参数以数组的形式传进去。call 接收多个参数,第一个为函数上下文也就是this,后边参数为函数本身的参数。apply接收两个参数,第一个参数为函数上下文this,第二个参数为函数参数,通过一个数组的形式传...原创 2019-04-21 17:07:01 · 680 阅读 · 0 评论 -
JS-Learning | this机制与判断this是如何绑定的?
this机制是JavaScript非常重要的机制之一,了解this并运用它对一个JavaScript开发者很重要,让我们一起来领略一下this的魅力。为什么要用this首先我们先看一个例子:function identify() { return this.name.toUpperCase();}function speak () { var greeting = "Hello, I...原创 2019-04-15 21:24:10 · 141 阅读 · 0 评论 -
JS-Learning | Ajax的原理和实现
Ajax技术的核心是XMLHttpRequest对象(简称XHR),XHR为向服务器发送请求和解析服务器响应提供了流畅的接口,能够以异步方式从服务器取得更多信息,意味着用户单击后,可以不必刷新页面也能取得新数据。换句话说,可以使用XHR对象取得新数据,然后再通过DOM将新数据插入到页面中。值得注意的是虽然名字中包含XML的成分,但Ajax通信与数据格式无关,取得的数据不一定是XML数据。XMLH...原创 2019-03-22 13:30:06 · 127 阅读 · 0 评论 -
JS-Learning | 深拷贝和浅拷贝的理解与实现
说起拷贝,那我们先看看JavaScript中复制变量值时会产生什么问题?复制变量值ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值。理解它们的区别可以参考上一篇博客数据类型(基本类型和引用类型的定义与检测)复制基本类型的值:如果从一个变量向另一个变量复制基本类型的值,会在变量对象上创建一个新值,然后把该值复制到新变量分配的位置上。来看一个例子: var ...原创 2019-03-21 12:22:32 · 132 阅读 · 0 评论 -
JS-Learning | 数据类型(基本类型和引用类型的定义与检测)
JavaScript变量松散类型的本质,决定了它只是在特定时间用于保存特定值的一个名字而已,可以理解为变量占了一个坑,具体填的是黄金还是泥土就要看自身造化了……ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值。基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象。基本数据类型基本数据类型有五种:Undefined、Null、Boolean、Num...原创 2019-03-20 20:50:30 · 149 阅读 · 0 评论 -
JS-Learning | for in和for of的区别
遍历数组遍历数组我们常用for循环,ES5中新增了forEach、every、filter、map、some、reduce和reduceRight等具有遍历数组功能的方法。使用foreach遍历数组的话,使用break不能中断循环,使用return也不能返回到外层函数。还可以使用for in来遍历数组,但是会出现一些我们不希望的场景。for in遍历遍历数组使用for in遍历数组时,...原创 2019-04-22 12:27:00 · 162 阅读 · 0 评论 -
JS-Learning | 如何使属性或者对象不能被改变?
希望属性或者对象不可改变,可以使用以下方法实现:1.对象常量结合writable: false和configurable: false就可以创建一个真正的常量属性(不可修改、重定义或者删除):var myObject = {};Object.defineProperty( myObject, "FAVORITE_NUMBER", { value: 23, writable: fa...原创 2019-04-17 20:07:55 · 922 阅读 · 0 评论 -
JS-Learning | 手动实现new
JavaScript使用new时,函数调用会变成“构造函数调用”,new会劫持所有普通函数并用构造对象的形式来调用它。在调用 new 的过程中会发生下面四件事情:新生成了一个对象链接到原型绑定 this返回新对象接下来,我们来实现一下newfunction _new() { // 创建一个空的对象 let obj = new Object() // 获得...原创 2019-04-23 09:55:45 · 197 阅读 · 0 评论 -
React 实战 | js如何点击按钮实现一键复制
复制按钮,使用antd的<Icon type="copy" />,按钮<Icon type="copy" onClick={this.copy} />先绑定onClick事件,具体函数实现如下copy = () => { var copyDOM = document.getElementById("xxx"); //需要复制文字的节点 ...原创 2019-06-19 18:52:32 · 3012 阅读 · 1 评论 -
JS-Learnig | 时间戳和字符串展示(YYYY-MM-DD hh:mm:ss)相互转换
时间戳转换成字符串形式为YYYY-MM-DD hh:mm:sstimeFormat = (time) => { var date = new Date(time + 8 * 3600 * 1000); // 增加8小时 return date.toJSON().substr(0, 19).replace('T', ' '); }字符串转换为时间戳 getTime...原创 2019-07-05 19:07:06 · 747 阅读 · 0 评论 -
JS-Learning | 对象属性描述符writable、enumerable和configurable
属性是指一些存储在特定命名位置的(任意类型的)值。在ES5之前,JavaScript语言本身并没有提供可以直接检测属性特性的方法,比如判断属性是否是只读。但在ES5开始,所有的属性都具备了属性描述符。属性描述符普通的对象属性对应的属性描述符含有:writable(可写)、enumerable(可枚举)和configurable(可配置)。var myObject = { a: 2}...原创 2019-04-17 19:39:28 · 1382 阅读 · 1 评论 -
JSON —— JavaScript Object Notation ,是什么?怎么用?
JSON是什么?JSON——JavaScript Object Notation 是一个基于JavaScript对象语法的表示结构化数据标准文本格式。它通常用在web应用程序中传输数据(比如说从服务器发送一些数据到客户端,所以它也可以显示在网页上,反之亦然)。JSON的语法格式JavaSCript已经内置了JSON的解析,我们可以直接使用JSON。JSON和JavaScript对象的不同点...原创 2019-08-10 15:47:29 · 499 阅读 · 0 评论 -
JSONP跨域
什么是JSONP?JSONP 不是 JSON,它是跨域访问的一种机制。JSONP(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。为什么需要这种机制?是因为同源策略。JSONP如何跨域?利用了 <script> 标签允许跨域访问的特点。需要服务器对返回的 JSON 进行包裹,即需要其它域的服务器...原创 2019-08-11 20:43:10 · 118 阅读 · 0 评论 -
JS-Learning | 事件冒泡、事件捕获以及事件委托
想要了解事件冒泡、事件捕获以及事件委托的概念,我们需要先了解一下什么是事件流。事件流事件流描述的是从页面中接收事件的顺序。比如说,如果你单击了某个按钮,我们则认为在单击按钮的同时,你也单击了按钮的容器元素,甚至也单击了整个页面。IE和Netscape开发团队就提出了两个完全相反的事件流的概念。IE的事件流是事件冒泡流,而Netscap Communicator的事件流是事件捕获流。事件冒泡...原创 2019-03-15 21:19:27 · 196 阅读 · 0 评论