![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JS笔记
从学过的知识开始,进行回顾,也许会发现了不得的东西,
佥望三十
这个作者很懒,什么都没留下…
展开
-
JavaScript中,你是否真的会判断 空对象
Y Write 无意中看到一篇判断空对象的博客,开头使用的就是 JSON.stringify 方法,只是看到这里,我便 Ctrl 接 W 一套丝滑连招。 JSON.stringify JSON.stingify 会将对象序列化,如果传入的是一个空对象,那么显然是可以这么判断的。 JSON.stringify({}) // "{}" JSON.stringify({ name: 'Tom' }) // "{"name": "Tom"}" 看起来,JSON.stringify 是一个判断空对象的好方法,原创 2021-08-25 19:10:04 · 114 阅读 · 1 评论 -
prototype,__proto__
对象的__proto__指向构造函数的 prototype。 对象才有__proto__,函数才有 prototype,而 js 中函数也是对象。 Function.prototype.a = 1; Object.prototype.b = 2; function A() {} let obj = new A(); console.log(obj.a, obj.b) console.log(A.a, A.b) 先想好上述代码的运行结果,再看下述代码。 Function.prototype.a =原创 2021-04-30 01:09:11 · 100 阅读 · 0 评论 -
js之花式对象深拷贝
1.JSON let obj = { a: 'hello', b: function () {}, c: undefined, d: { e: 'world' } } let copy = JSON.parse(JSON.stringify(obj)); // {a, d} // JSON实现深拷贝的优点:多级也可以实现深拷贝 // 缺点:函数,正则,undefined 无法拷贝 说到底,就是将对象序列化再转成对象,所以可以实现深拷贝。 2.Object.assign() let copy原创 2021-04-25 21:53:20 · 55 阅读 · 0 评论 -
通俗易懂,讲讲函数柯里化
与函数绑定密切相关 函数柯里化用于创建已经设置好了一个或者多个参数的函数。函数柯里化的基本方法是:使用一个闭包返回一个函数。当函数被调用时,返回的函数还需要设置一些传入的参数。 function add(num1, num2) { return num1 + num2; } function curriedAdd(num2) { return add(1, num2); } add(1, 2); // 3 curriedAdd(2) // 3: 上述代码中,curriedAdd 方法实际是第一个参原创 2021-04-24 23:50:11 · 126 阅读 · 0 评论 -
Vue 中数据的代理
vue2 let obj = { userNmae: '小红', pass: '1234' } let hijack = {} for (let i in obj) { Object.defineProperty(hijack, i, { get() { return obj[i] } set(newValue){ obj[i] = newValue } }) } hijack.userName = '小蓝' console.log(hijack.userName原创 2021-04-23 18:35:34 · 237 阅读 · 0 评论 -
JS 求给定字符串的最长回文字符串
a,aa,aba,abba const longestPalindrome = function (s) { // 如果 s 为 ''、 null、undefined,或者只有一个字符,则返回 s if (!s || s.length < 2 ) { return s } let start = 0, end = 0, length = s.length // 已当前一个/两个字符为中心,向两边寻找最长回文字符串 const centerExpend = (left, r原创 2021-04-23 13:19:27 · 179 阅读 · 0 评论 -
JS 防抖和节流
通俗来说 防抖和节流就是限制方法的执行次数。为什么?作者来举一个小例子。 防抖 通过 setTimeout,将一定时间内的多次触发变成一次触发。 例: // 获取一个id为 btn 的按钮元素, html 代码省略 const btn = document.getElementById('btn') btn.addEventListener('click', submit) function submit () { console.log('hello') } 想一想,你平时在网页上是否有短时间内多次原创 2021-04-18 22:56:16 · 73 阅读 · 1 评论 -
HTML5中的 script 标签
HTML5中的<script>标签 HTML5为script标签定义了 6 个属性。分别是src、type、charset、defer、async,anguage(已废弃)。 <script>标签中的属性 src:可选。表示引入的文件。 type:必选。虽然说是必选,但其实也可以不用指定,因为浏览器大多默认其值为 “text/javascript”。 charset:可选。...原创 2020-04-12 20:51:29 · 1249 阅读 · 0 评论