对于前端程序员来说闭包还是比较难以理解的,
闭包的形成与变量的作用域以及变量的生产周期密切相关,所以要先弄懂变量的作用域和生存周期。
1.变量作用域
变量的作用域,就是指变量的有效范围,通常我们指的作用域就是函数作用域(毕竟全局的作用域没有要指的意义,关键哪都能访问)
声明变量的时候推荐使用
//通过工厂模式批量创建
function Computer(color,weight,logo){
var obj=new Object();
obj.color=color;
obj.weight=weight;
obj.logo
javascript获取属性有两种方式,点或者中括号:
var obj={}
obj.x=1
console.log(obj.x)//1 第一种方式,x是字面量
try{
console.log(obj[x])//ReferenceError: x is not defined 相当于
高阶组件
简单来说,高阶组件可以看做一个函数,且该函数接受一个组件作为参数,并返回一个新的组件。
我在之前的博客《闭包和类》中提到一个观点,面向对象的好处就在于,易于理解,方便维护和复用。
其实高阶组件,也是为了更好地复用之前的组件。它可以理解为,基础组件通过包裹处理,生成一个适应某些场景的组件
1.event.stopPropagation()方法 这是阻止事件的冒泡方法,不让事件向documen上蔓延,但是默认事件任然会执行,当你掉用这个方法的时候,如果点击一个连接,这个连接仍然会被打开,
2.event.preventDefault()方法 这是阻止默认事件的方法,调用此方法是,连接不
JavaScript流程控制语句脑图
图片是从网上找来的,在这记录一下,以备后面需要的时候查找方便。
JavaScript通过规定的语句让有条件的按照一定的方式执行。
分为:循环语句
while
do-while
for
for-in
跳转语句
在网页中,实现动画无外乎两种方式。1. CSS3 方式,也就是利用浏览器对CSS3 的原生支持实现动画;2. 脚本方式,通过间隔一段时间用JavaScript 来修改页面元素样式来实现动画。接下来我们就分别介绍这两种方式的原理,让大家先对这两种方式有一个直观认识,了解各自的优缺点。
CSS3 的方式
JavaScript 中的 ajax 很早之前就有一个诟病————复杂业务下的 callback 嵌套的问题。promise 正是 js 中解决这一问题的钥匙。
接下来我们在react项目中应用到的fetch 就用到了最新的 promise。
那我们如何在react项目中应用fetch呢?
第一步:
在 webpack.dev.config.js中
'use strict'
const utils = require('./utils')
const webpack = require('webpack')
const config = require('../config')
const m
//数组浅拷贝
var arr=["xjz","is","a","superman"];
//slice
var new_arr=arr.slice();
问题描述:
在 iOS 系统中,用微信打开了 A 页面的链接,然后由 A 页面进入 B 页面
在 B 页面打开微信右上角菜单,使用“复制链接”功能
最后粘贴出来的链接是 A 页面的链接
分析原因:
这个问题在微信 6.2 时代就已存在,
本博文配合 阮一峰 《ES6 标准入门(第3版)》一书进行简要概述 ES6 中变量的解构赋值。
数组的解构赋值
基本用法
ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为
function Foo() {
getName = function () { alert(1); }
return this;
}
Foo.getName = function () { alert(2); }
JavaScript比较和逻辑运算符
JavaScript比较和逻辑运算符
比较和逻辑运算符用于测试true或者false。
比较运算符
比较运算符在逻辑语句中使用,以测定变量或值是否相等
例如设定x = 5;
运算符
描述
比较
返回值
==
等于
x == 8
false
===
绝对等于(
Webpack已经出来很久了,相关的文章也有很多,然而比较完整的例子却不是很多,让很多新手不知如何下脚,下脚了又遍地坑
说实话,官方文档是蛮乱的,而且有些还是错的错的。。很多配置问题只有爬过坑才知道
本文首先介绍Webpack(3)的一些基础知识,然后以
为了统一团队的代码规范,除了一纸规范说明之外,还需要引入工具进行限制。虽说工具并不能完全实现规范中的规则,但至少能够在一定程度上缓解代码不统一的局面。
相对于后端,前端代码规范的质量检查涉及到HTML, CSS,Javascript ,如今还涉及到SCSS,ES5,JSX, React,
web安全中有很多种攻击手段,除了SQL注入外,比较常见的还有 XSS 和 CSRF等
一、XSS(Cross Site Scripting)跨站脚本
XSS其实就是Html的注入问题,攻击者的输入没有经过严格的控制进入了数据库,最终显示给来访的用户,导致可以在
Redux是一个数据状态管理插件,论是移动端还是 pc 端,当你使用 React 或者 vue 开发组件化的 SPA 程序时,
组件之间共享信息是一个非常大的问题。在react开发中,使用 React 开发系统,绝大部分都需要结合 Redux 来使用。
第一步安装
安装redux的时候,我们经常也会
阮一峰ES6入门
let
作用域
let命令用来声明变量,但声明的变量只在let命令所在的代码块内有效。
{
let a = 10;
var b = 1;
}
a // ReferenceError: a is not defined.
b // 1
for循环
上图代码中i是var声
1. ReactJS是什么? 1). Facebook开源的一个js库 2). 一个用于动态构建用户界面的js库2. React的特点 * Declarative(声明式编码) * Component-Based(组件化编码) * Learn Once, Write Anywh