简单的说一下JavaScript中的动态变量

简单的说一下JavaScript中的动态变量

我们从一个很简单的示例开始说起

1
2
3
4
5
6
7
8
[] + {}
// '[object Object]'
{} + []
// 0
{} + {}
// NaN
[] + []
// ''

由于时间关系,我在这片笔记中就不展开说了。简单的说一下上面几个语句。

理解JavaScript中的__proto__和prototype

理解JavaScript中的__proto__和prototype

需要理解的一些概念

万物皆对象

虽然说 JavaScript 的面向对象不像是我们通常了解到的那些 OOP,但是,的确,在 JavaScript 中,所有的东西都是对象,这其中就包括了我们今天要说的,方法(Function)以及方法的原型(Function.prototype),他们都是对象。因此,它们都会具有对象共有的特点。
即:对象具有属性__proto__,可称为隐式原型,一个对象的隐式原型指向构造该对象的构造函数的原型,这也保证了实例能够访问在构造函数原型中定义的属性和方法。

ES6中的模板字符串

ES6中的模板字符串

前两天在看教程的时候,突然发现了一个语法,具体如下:

1
2
3
4
5
6
7
foo = (...values) => console.log(...values)
// (...values) => console.log(...values)
a = 'bar'
// "bar"
foo`start${a}end`
// (2) ["start", "end"], raw: Array(2)] "bar"
// undefined

直接给我看蒙了,所以,我就ES6的模板字符串做一下总结:

就算是一份ES567的摘要吧

就算是一份ES567的摘要吧

如图

图很长,还是点进来看吧。

实在看不清楚,就点这里

JavaScript中的一些小技巧

JavaScript中的一些小技巧

字符串相关

格式化数字

1
2
3
const ThousandNum = num => num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')
const number = ThousandNum(20190214)
// number => "20,190,214"
JavaScript中的防抖动和限流

JavaScript中的防抖动和限流

防抖动(debounce)和限流函数(throttle)

debounce 与 throttle 是开发中常用的高阶函数,作用都是为了防止函数被高频调用,换句话说就是,用来控制某个函数在一定时间内执行多少次。

正则表达式和IndexOf函数的效率问题

正则表达式和IndexOf函数的效率问题

事情的起因

事情的起因是一道LeetCode题目,具体如下:

1003. 检查替换后的词是否有效

给定有效字符串 “abc”。

对于任何有效的字符串 V,我们可以将 V 分成两个部分 X 和 Y,使得 X + Y(X 与 Y 连接)等于 V。(X 或 Y 可以为空。)那么,X + “abc” + Y 也同样是有效的。

例如,如果 S = “abc”,则有效字符串的示例是:”abc”,”aabcbc”,”abcabc”,”abcabcababcc”。无效字符串的示例是:”abccba”,”ab”,”cababc”,”bac”。

如果给定字符串 S 有效,则返回 true;否则,返回 false。

React源码解读-事件注册

React源码解读-事件注册

本文主要通过OutLine和思维导图的方式展现React中事件注册的流程。

React和Vue中的数据绑定

React和Vue中的数据绑定

数据的单向绑定

我们在做原生页面开发的时候,如果涉及到前端的数据动态展现,是如何做的呢?(这里排除了后端直接返回嵌入数据的HTML页面的模式,比如说PHP中的模式),比如下面的例子:

1
<p></p>
1
2
const data = { value: 'hello' }
document.querySelector('p').innerText = data.value;

通过 JavaScript 原生的DOM操作方式,将数据动态填充到DOM中,就是数据(Data)到模板(DOM)的绑定,这就是数据单向绑定。

JavaScript事件冒泡与事件捕获

JavaScript事件冒泡与事件捕获

事件冒泡与事件捕获

事件冒泡事件捕获分别由微软网景公司提出,这两个概念都是为了解决页面中事件流(事件发生顺序)的问题。

比如说,下面的代码:

1
2
3
<div id="outer">
<p id="inner">Click me!</p>
</div>

上面的代码当中一个div元素当中有一个p子元素,如果两个元素都有一个click的处理函数,如果点击了inner的话,其实outer也算是被点击了的。那么我们怎么才能知道哪一个函数会首先被触发呢?为了解决这个问题微软和网景提出了两种几乎完全相反的概念。

Agile Angularjs Animation Application Artificial Intelligence BP Babel Bokeh Book C4.5 CART CD CLI CSS CentOS CheetSheet Cinder Clipboardjs Concept Continuous Delivery DeepLearning Department DevOps Develop Development Directive Distribution Django Document ECMA ES5 ES6 ES7 Echarts Engine Entropy Filter Front End Gallery Git Gradient descent Hexo Horizon ID3 ID3.5 Icarus JavaScript Javascript KVM LaTeX LeetCode LibreOffice Linux MNIST Machine Learning Matrix MiddleWare Module Native Network Nginx NodeJS Numpy OOP OpenSSH OpenStack OpenStackApi Operations Oprations PDF PLA Pandas Pipline Probability Python React Relational algebra Restful Route SVD SVM Scalar Sigmoid Team Tempest Tensor TensorFlow Testing Time TimeMachine Tips Vector Vmware Vue Vuex WSGI Web Word Cut aliyun auth babel certbot debounce decision tree dns docker dockerfile eject footer git header homebrew html5 http https jupyter jwt keystone lab loader lodash mathematics migrate nav openstack outline pdf2html pm2 proto prototype python replace request response rp rt ruby scikit-learn section singular value decomposition sklearn stylus throttle url vue-router vue-ssr webpack 事件 事件代理 事件冒泡 事件捕获 低通滤波器 入门 全局 全局变量 全局对象 全栈 公式 决策树 函数 分类器 剪枝 加速 动态变量 匹配滤波边缘检测 卷积 卷积核 原型链 双向绑定 反向传播 发布 变量类型 可视化 基尼指数 官方示例 对偶形式 对象 小技巧 平移和查分边缘检测 思维导图 感知机模型 拉格朗日乘子法 推导 提交阶段 数据 数据绑定 最大似然估计 最小二乘估计 最小二乘回归树 最小二乘法 本地 朴素贝叶斯 朴素贝叶斯算法 机器学习 条件概率 标签模板 梯度下降 梯度方向边缘检测 概念 概率 模板字符串 正则 求导 流程 源码 源码阅读 灰度 特征工程 生命周期 矩阵 神经网络 私有对象 科学计算 算法 算法实现 线性回归 缺失 联合概率 脚手架 识别 调试 贝叶斯 贝叶斯判定准则 边缘检测 边际概率 闭包 间隔 防抖动 限流 随机森林 高斯分布 高通滤波器
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×