
javascript高级 es5/es6
UIEngineer
玩中学!
展开
-
jquery的animate无法支持transform属性的解决方案
需求: 最近在用jquery来编写页面的动画效果。毕竟是pc端,偶尔不用原生的日子。 结果就遇到了transform无法加载的情况。解决方案一:$($sub).animate({},5000,function(){ $(this).css({'transform':'translateX(300px)'});})在动画函数的回调函数里执行。时间和效果就没了意义,毕竟函...原创 2018-06-26 12:34:13 · 10710 阅读 · 0 评论 -
javascript级联函数
function classA(){ this.lian = ""; this.zui = ""; this.tui = "";}// 原型classA.prototype = { setLian : function(){ this.lian = "红扑扑"; return this; }, setZui:fun原创 2018-02-07 21:17:00 · 319 阅读 · 0 评论 -
javascript函数柯里化
// 函数柯里化:合并参数 第一个函数的参数合并成整体的 传递给统一的函数function curry(fn){ console.log(fn); var args = Array.prototype.slice.call(arguments,1); return function(){ var innerArgs = Array.prototype.sl原创 2018-02-07 21:07:20 · 421 阅读 · 0 评论 -
javascript惰性载入函数
// 普通函数function createXHR(){ var xhr = null; try{ // Firefox,Opera 8.0+,Safari,IE7+ xhr = new XMLHttpRequest(); }catch(e){ // Internet Exporler try{原创 2018-02-07 20:51:18 · 211 阅读 · 0 评论 -
ES6 - 基于SSE的服务器数据推送新方式
index.html<meta charset="utf-8" /><script src="./index.js"></script>index.jsvar source;function init(argument){ source = new EventSource('http://localhost:9096/sse/data.php'); source.onopen =原创 2018-02-07 20:29:37 · 285 阅读 · 0 评论 -
javascript数据推送 - Comet:基于HTTP长连接的服务器推送技术
一、Comet:基于HTTP长连接的服务器推送技术 方法1:// 前端隔一段时间发一次ajax,但是请求很昂贵,所以应该交给服务器来做 方法2: index.html<meta charset="utf-8"/> <!-- 防止乱码 --> <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquer原创 2018-02-06 22:27:55 · 1457 阅读 · 0 评论 -
ES6 - 变量的解构赋值
数组解构实例1:let [a,b,c] = [0,1,2];console.log(a);console.log(b);console.log(c);实例2:let [a,[b,c],d] = [0,[1,2],3];console.log(a);console.log(b);console.log(c);console.log(d);实例3:let [foo = 'true'] =原创 2018-01-29 20:51:48 · 169 阅读 · 0 评论 -
ES6 - 模块化操作
案例1: temp.jsvar a = 'js';var b = '脚本';var c = 'web';export { a,b,c}export function add(a,b){ return a + b;}// export {// // 起个语义化名字// name as a,// // cname as b,// // s原创 2018-02-05 22:32:58 · 169 阅读 · 0 评论 -
ES6 - class类的使用
1.// classclass Coder{ name(val){ console.log(`val = ${val}`); return val; } skill(val){ console.log(this.name('js') + ':' + 'Skill-' + val); } constructor(a,原创 2018-02-05 22:07:42 · 242 阅读 · 0 评论 -
javascript高级技巧
一、变量作用域和闭包 变量作用域:js是函数级别作用域,在内部的变量内部都能访问,外部不能访问内部的,但是内部能访问外部的var j = 100;~(function test(){ // ~把函数转化成表达式 console.log(j);})();闭包:// 闭包function test(){ var k = 1000; return原创 2018-02-07 22:05:01 · 178 阅读 · 0 评论 -
ES6快速入门 - 对象代理
1.es3数据保护 // ES3,ES5 数据保护 var Person = function(){ var data = { // 局部作用域,保护数据 name : 'es3', sex : 'male', age : 15原创 2018-05-03 22:28:39 · 187 阅读 · 0 评论 -
this指向调用函数的对象
<!-- this 指向调用函数的对象 --><script> var name = 'Jenny Global'; var person = { name : 'Jenny', details : { name : 'Jenny details', print : funct...原创 2018-05-11 12:06:13 · 813 阅读 · 0 评论 -
datapicker组件的编写
基础知识// 获取当前mother的最后一天var date = new Date(year,mother,0)// 获取当前的mother的第一天var date = new Date(year,mother-1,1)原创 2018-06-14 12:17:57 · 248 阅读 · 0 评论 -
使用Javascript判断元素中是否含有某个样式
tip:引入了Moment.js格式化前端页面显示时间假设我们有如下元素<div id="LL" class="a b hello-world"></div>1.简单正则匹配法 即使用正则判断单词边界的方式判断是否存在classNamefunction hasClass(element,className){ const reg...原创 2018-05-24 12:32:35 · 14509 阅读 · 0 评论 -
Vue--set和map
1.set 2.map 含义:Javascript的对象 (Object),本质上是键值对的集合(Hash结构),但是传统上只能用字符串当作键。 ES6提供了Map数据结构,它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。 Map的键实际上是跟内存地址绑定的,只要内存地址不一样,就视为两个键。const m = new Map()...原创 2018-05-16 12:30:07 · 54384 阅读 · 0 评论 -
ES6快速入门 - 默认参数
1./* eslint-disable */{ // ES5 \ ES3 默认参数的写法 function f(x,y,z){ if(y === undefined){ y = 7; } if(z === undefined){ z = 42; } ...原创 2018-05-26 15:10:35 · 3119 阅读 · 0 评论 -
ES6快速入门 - 箭头函数
1.// 关闭eslint/* eslint-disable */ { // ES3,ES5 var events = [1,2,3,4,5]; var odds = events.map(function(v){ return v + 1 }) console.log(events,odds...原创 2018-05-20 14:28:30 · 212 阅读 · 0 评论 -
ES6快速入门 - 作用域
// ES5中作用域const callbacks =[];for(var i = 0;i &lt;= 2;i++){ callbacks[i] = function(){ return i * 2; // 闭包 }}console.log([ callb...原创 2018-05-20 14:01:41 · 150 阅读 · 0 评论 -
es6快速入门 - 常量
1.使用DOS命令建立const.js文件echo > const.js2.// ES5中常量的写法// 给window对象定义只读属性Object.defineProperty(window,"PI2",{ value : 3.1415926, writable : false // ...原创 2018-05-19 14:00:39 · 266 阅读 · 0 评论 -
javascript难点知识简述 --- 递归,闭包,柯里化等
面向对象编程 &amp;&amp; 面向过程编程 面向对象编程(Object Oriented Programming,OOP): 是一种以事物为中心的编程思想,把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为,三大特点缺一不可。 封装: 将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现...原创 2018-05-12 15:35:16 · 640 阅读 · 0 评论 -
ES6 - promise对象的使用
// promise可以解决回调地狱的问题// 1.洗菜做饭 2.坐下来吃饭 3.收拾桌子洗碗let state = 1;function step1(resolve,reject){ // 同意,拒绝 console.log('1.开始 - 洗菜做饭'); if(state == 1){ resolve('洗菜做饭 - 完成');原创 2018-02-05 21:53:09 · 160 阅读 · 0 评论 -
ES6 - 用Proxy进行预处理
代理的意思1.// proxy 代理 增强对象和函数(方法) 生命周期(钩子函数) 预处理let obj = { add:function(val){ return val + 100; }, name:'I am Js'}let pro = new Proxy({ // 对象体 add:function(val){ ret原创 2018-02-05 21:37:45 · 250 阅读 · 0 评论 -
ES6 - Set和WeakSet数据结构
1.// Set,数据结构,去重let setArr = new Set(['js','脚本','web','脚本']);setArr.add('前端职场');setArr.add('js');console.log(setArr);2.// Set,数据结构,去重let setArr = new Set(['js','脚本','web','脚本']);// has查找是否具有某个值con原创 2018-02-05 20:58:59 · 227 阅读 · 0 评论 -
javascript - 认识面向对象
1.面向对象中的 概念 1):一切事物都是对象 2):对象具有封装和继承特性 3):信息隐藏基本面向对象var person = { name:'iwen', age:30, eat:function(){ alert("能吃"); }}alert(person.name);函数构造器构造对象function Person(){}// 原型链原创 2018-02-01 21:30:32 · 150 阅读 · 0 评论 -
ES6 - 新增的数组知识(1)
1.json的数组格式转化成数组// json的数组格式let json = { '0':'js', '1':'脚本', '2':'js脚本', length:3}let arr = Array.from(json); // 转化成数组console.log(arr);2.// Array.of方法let arr = Array.of(3,4,5,6);c原创 2018-02-01 21:21:08 · 162 阅读 · 0 评论 -
javascript面向对象(2)
继承function Person(){ var _this = {}; _this.sayHello = function(){ alert("Hello"); } return _this;}function Teacher(){ var _this = Person; return _this;}var t = Teacher原创 2018-02-01 21:01:48 · 139 阅读 · 0 评论 -
ES6 - 数字操作
案例1:// 二进制声明 Binarylet binary = 0B010101;document.writeln(binary);// 八进制声明 Octallet octal = 0O666;document.writeln(`<br />${octal}`);案例2:// 是否是数字判断let a = 11;document.writeln(Number.isFinite(a));原创 2018-02-01 20:45:28 · 418 阅读 · 0 评论 -
javascript面向对象(1)
封装、继承、信息的隐藏案例1:function People(){}People.prototype.say = function(){ alert("hello");}function Student(){}// Student继承PeopleStudent.prototype = new People();var s = new Student();s.say();案例2:原创 2018-02-01 20:23:07 · 183 阅读 · 0 评论 -
ES6 - 字符串模板
终端输入npm init -y此时生成package.json文件终端再次输入cnpm install -g live-server作为前端服务器开发,进行实时刷新实例1:let hello = '你好';let blog = `${hello}我是一个博客,这节课学习字符串模板`;document.writeln(blog);然后在终端输入live-server结果为: 实例2:let hel原创 2018-01-30 21:53:56 · 190 阅读 · 0 评论 -
对象扩展运算符和rest运算符
对象扩展运算符实例1:function f(...arg){ console.log(arg[0]); console.log(arg[1]); console.log(arg[2]); console.log(arg[3]);}f(1,2,3);实例2:let arr1 = ['www','qxb','com'];let arr2 = [...arr1];co原创 2018-01-30 21:26:13 · 321 阅读 · 0 评论 -
javascript基础知识
1、frame框架对象 2、location(位置对象) window.location = “xxxx/jsp” 3、使用两种方式输出表单的action值(使用表单的名称,使用表单数组forms)`<form name="form1" action="test.html" method="post"> <input type="text" name="username" va转载 2017-10-16 20:38:44 · 257 阅读 · 0 评论 -
ES6 - 新增的数组知识(2)
// fill数组填充let arr = ['js','脚本','js脚本'];arr.fill('web',1,3);console.log(arr);// 数组循环for(let item of arr){ console.log(item);}// 输出数组索引for(let item of arr.keys()){ console.log(item);}// 输原创 2018-02-01 21:48:03 · 186 阅读 · 0 评论 -
javascript事件
文本框内容被选中事件<form> <input type="text" onselect="changeDemo(this)" /> </form> <script> function changeDemo(bg){ bg.style.background = "red"; } </script>原创 2018-02-01 22:08:21 · 261 阅读 · 1 评论 -
ES6 - 箭头函数和扩展
// 主动抛出异常function add(a,b = 1){ if(a == 0){ throw new Error('A is Error'); } return a+b;}console.log(add(0));function add(a,b = 1){ if(a == 0){ throw new Error('A is原创 2018-02-01 22:25:06 · 172 阅读 · 0 评论 -
ES6 - Symbol在对象中的作用
1.// Symbol,相当于全局的原始数据类型let f= Symbol();console.log(typeof(f));let js = Symbol('脚本');console.log(js); // Symbol类型console.log(js.toString()); // 字符串类型2.let js = Symbol()原创 2018-02-04 22:41:14 · 1650 阅读 · 0 评论 -
ES6 - 对象
1.// 赋值let name = 'js';let skill = 'web';let obj = {name,skill};console.log(obj);2.// key值的构建let key = 'skill';var obj = { [key]:'web'}console.log(obj);3.// 自定义对象方法let obj = { add:fun原创 2018-02-04 22:27:09 · 142 阅读 · 0 评论 -
ES6 - 函数和数组补漏
案例1:// 对象的函数结构let = json = { a:'js', b:'脚本'}function fun({a,b = 'web'}){ console.log(a,b);}fun(json);案例2:// 数组结构let arr = ['js','脚本','前端教程'];function fun(a,b,c){ console.log(a,b,c)原创 2018-02-04 22:10:13 · 144 阅读 · 0 评论 -
Javascript异常捕获
案例1: index.html代码<!doctype html><html><head><meta charset="utf-8"><title></title></head><body> <script> function demo(){ try{ alert(str); }catc原创 2018-01-28 22:32:55 · 204 阅读 · 0 评论 -
ES6新的声明方式
let局部声明实例1:var a = "xiaoming"{ let a = "小明";}console.log(a);浏览器控制台打印结果为: let局部声明实例2:for(let i = 0;i < 10;i++){ console.log("循环体中:" + i);}console.log("循环体外:" + i);const常量声明实例const a = "这是一个常量原创 2018-01-28 22:16:24 · 194 阅读 · 0 评论 -
ES6的开发环境搭建
终端输入npm init -y生成package.json文件这里我们需要安装一个插件,在终端输入cnpm install -g babel-cli这是全局安装,注意这里写的是babel-cli,cli代表使用命令行的意思终端再输入cnpm install --save-dev babel-preset-es2015 babel-cli执行babel-cli的本地安装然后在终端输入babel src原创 2018-01-28 21:44:25 · 247 阅读 · 0 评论