tips javascript(一)】的更多相关文章

tips javascript(一) 实现type函数用于识别标准类型和内置对象类型,语法如下: var t = type(obj); function type(o){    if (o === null)        return 'null';    if (typeof o !== 'object')        return typeof o;     if (o instanceof Number)        return 'number'     if (o instanc…
转自Web 前端开发修炼之道. 在JavaScript 中funciton 包含多个参数的时候,我们想要实现可选参数的功能,传很多个null 其实是个很讨厌的事情,这个时候就可以使用这个技巧. 具体见代码: 是不是瞬间感觉腰不疼了,腿部酸了? 本文来自:http://www.cnblogs.com/bnbqian/p/3746461.html 转载请注明.…
To make an array uniqued, we can use Set() from Javascript. const ary = ["a", "b", "c", "a", "d", "c"]; console.log(new Set(ary)); We can see that all the duplicated value have been removed,  now…
1)获取图片尺寸 <img src="http://img.my.csdn.net/uploads/201309/03/1378223257_7957.jpg" alt="MM" title="MM(实际大小200*300)" onclick="getWH(this)" width="200" height="300"/> <script> function ge…
js 方法传参有时候会遇到空格,空格会报错,因为它会默认空格后是元素 解决方法就是使用 escape 和 unescape html: var title = escape(rowObject.title); var btnModify ='<button class="btn btn-outline blue-chambray" id="" onclick=fillModifyFormFileds("' + rowObject.id + '&quo…
JavaScript中的函数 1. 函数的定义 两种定义形式: 通过函数定义表达式来定义 通过函数声明语句来定义 函数声明语句定义一个函数 //计算阶乘的递归函数 function factorial(x){ if (x<=1) return 1; return x*factotial(x-1); } 函数定义表达式定义一个函数 var s= function sum(x,y){ return x+y; } tips:以表达式方式定义的函数(特别适合用来定义那些只会用到一次的函数),函数名是可选…
tips: JavaScript 除了null和undefined之外,其他变量都可以当做对象使用. JavaScript 的基本数据类型有:number boolean string null  undefined ,其他所有值都是对象. JavaScript 的 typeof 只能判断 number boolean string undefined function object 不能判断一些具体的对象类型和null. 如果要判断对象的具体类型则要使用  Object.prototype.t…
Jan 27, 2020 ~ Feb 2, 2020 Algorithm Problem 160.Intersection of Two Linked Lists(相交链表) 题目链接 题目描述:给定两个链表,判断其是否存在相交,若存在则返回相交节点,若不存在则返回 null.假设链表中不存在环路,函数不能破坏链表原有结构.举例,下面的两个链表则为相交链表,相交结点为 9. 1 -> 2 -> 3 \ 9 -> 8 / 7 思路1:与上一周的题目类似,可以将其中一个链表中所有结点的地址用…
Jan 20, 2020 ~ Jan 26, 2020 Algorithm Problem 141 Linked List Cycle (环形链表) 题目链接 题目描述:给定一个链表,判断链表中是否存在环形.pos 代表链表末尾指向的连接到链表的位置,从0开始.若 pos = -1 则表示链表中没有环(注意:输入的只有链表本身,没有 pos) 举例: Input: head = [3,2,0,-4] (pos = 1) Output: true 3 -> 2 -> 0 -> -4 \ /…
vue3响应式模式设计原理 为什么要关系vue3的设计原理?了解vue3构建原理,将有助于开发者更快速上手Vue3:同时可以提高Vue调试技能,可以快速定位错误 1.vue3对比vue2 vue2的原理是通过 Object.defineProperty() 来劫持各个属性,在数据变动时发布消息给订阅者,触发相应的监听回调. defineProperty不具备监听数组的能力,无法检测到对象属性的添加和删除,只有在初始化实例时对data对象转换响应式,后面新增的需要手动转换,深度监听需要一次性递归,…
Tips: return false - event.preventDefault(); //阻止默认行为 P.S 阻止a标签的跳转 - event.stopPropagation(); //阻止事件冒泡 Call & Apply 代替另一个对象调用一个方法,改变this指向 详见本人博客:Call and Apply in JavaScript Prototype 原型 详见本人博客:Prototype in JavaScript Js,Jquery的混用 一直算是知道不能混用的准则,但还是被…
As you know, JavaScript is the number one programming language in the world, the language of the web, of mobile hybrid apps (like PhoneGap or Appcelerator), of the server side (like NodeJS or Wakanda) and has many other implementations. It’s also the…
原文来自于:http://flippinawesome.org/2013/12/23/45-useful-javascript-tips-tricks-and-best-practices/ 1 – Don’t forget var keyword when assigning a variable’s value for the first time. Assignment to an undeclared variable automatically results in a global…
50 tips of JavaScript,这些坑你都知道吗? 1.在局部作用域中,使用var操作符定义的变量将成为定义该变量的作用域中的局部变量,省略var的会创建全局变量:在全局作用域中,不管是否使用var操作符定义的变量都会创建一个全局变量.但是,在全局作用域中使用var创建的全局变量是不能被delete删除的,而未使用var创建的变量和局部作用域中未使用var操作符创建的全局变量是可以删除的.(与其说省略var会创建全局变量,倒不如说省略var会直接给全局对象添加一个新的属性,因为ES中…
<45 Useful JavaScript Tips, Tricks and Best Practices> http://flippinawesome.org/2013/12/23/45-useful-javascript-tips-tricks-and-best-practices/ 1 – Don’t forget var keyword when assigning a variable’s value for the first time. Assignment to an unde…
谈到javascript的性能优化,有好多点,比如把script放到离body闭合标签附近,合并多个script标签等等,还有一些代码的性能,for的性能不如while的性能好,用while模拟for循环等等等. 1.从加载开始 在浏览器中,js文件的执行和下载会阻塞css和dom的渲染,这是浏览器的单线程所致,后来chrome,ff等浏览器启用了js文件的并行下载,然而js文件的运行还是会被阻塞,有的浏览器支持defer关键字. <script type="text/javascript…
1.在局部作用域中,使用var操作符定义的变量将成为定义该变量的作用域中的局部变量,省略var的会创建全局变量:在全局作用域中,不管是否使用var操作符定义的变量都会创建一个全局变量.但是,在全局作用域中使用var创建的全局变量是不能被delete删除的,而未使用var创建的变量和局部作用域中未使用var操作符创建的全局变量是可以删除的.(与其说省略var会创建全局变量,倒不如说省略var会直接给全局对象添加一个新的属性,因为ES中的变量只能通过var关键字才能创建): var a = 1; /…
如何给javascript对象动态创建动态key // ES2015 var key = 'DYNAMIC_KEY', obj = { [key]: 'ES6!' }; console.log(obj); // > { 'DYNAMIC_KEY': 'ES6!' } // NON ES2015 var obj = []; obj[] = "hello world"; obj[; var objJSON = JSON.stringify(obj); 数字化的Date js中,Dat…
定义 以下是红宝书的描述 属性/方法 类型 读/写 说明 currentTarget Element 只读 其事件处理程序当前正在处理事件的那个元素 target Element 只读 事件的目标 MDN: currentTarget: 当事件遍历DOM时,标识事件的当前目标.它总是引用事件处理程序附加到的元素,而不是event.target,它标识事件发生的元素. target:一个触发事件的对象的引用. 结论 emmmm,这说的真晦涩,不自己动手还真看不出有啥差别,先给结论吧:current…
目录 输出 全局变量 字符串 类型及转换 变量提升 严格模式 表单验证 (1) 输出 <!DOCTYPE html> <html> <body> <p>JavaScript输出</p> <script> // 使用window.alert()弹出警告框 window.alert(5+6); // 使用document.write()方法将内容写到HTML文档中 document.write(Date()); // 注意:如果在文档已完…
/** Let inheritance help with memory efficiency */ function SignalFire(ID, startingLogs){ this.fireID = ID; this.logsLeft = startingLogs; } SignalFire.prototype = { addLogs: function(numLogs){ this.logsLeft += numLogs; } lightFire: function(){ alert(…
1.实现目标:数组去重 2.实现思路: (1)创建新数组. (2)遍历原数组,判断当前被遍历元素是否存在于新数组,如果存在于新数组,则判断当前被遍历元素是重复的:如果不存在于新数组,则判断当前被遍历元素不是重复的,则将其压入新数组. (3)遍历完毕原数组后,返回新数组. 3.具体实现:根据对当前元素是否重复的判断方法不同,有四种不同的具体实现. (1)利用hash表保存被遍历元素是否重复的状态. function unique( arr ) { var n = {}, //hash表,用于判断元…
前言 处理时间时,常常要考虑用户的输入是否合法,其中一个很典型的场景就是平闰年的判断,网上其实有很多类似的算法,但是其实不必那么麻烦,下面我讲讲的我的思路. 规则 公元年数可被4整除为闰年,但是整百(个位和十位均为0)的年数必须是可以被400整除的才是闰年(比如1900年不是闰年),其他都是平年.例如:1997年是平年,2002年是平年:1996年是闰年,2000年是闰年.平年二月有28天,而闰年二月有29天. 最根本的原因是:地球绕太阳运行周期为365天5小时48分46秒(合365.24219…
demo // DOM结构 class App extends React.Component { componentDidMount() { const div1 = document.getElementById('div1'); const div2 = document.getElementById('div2'); const div3 = document.getElementById('div3'); // 捕获阶段处理 div1.addEventListener('click',…
HTML5规定可以为元素添加非标准型的属性,只需添加前缀data-,这些属性可以随意添加,随意命名,目的是为元素提供与渲染无关的信息,或提供语义信息. 传统获取方式 'getAttribute' dataset属性的值是DOMStringMap的一个实例,名值对的映射.每个data-name形式的属性都有一个对应的属性,只不过该属性名没有data-前缀. 需要注意的是,data()的值进行修改并不会影响到DOM元素上的data-*属性的改变.data()的本质其实是将一个 “cache” 附加到…
1.json转字符串 function json2str(o) { var arr = []; var fmt = function (s) { if (typeof s == 'object' && s != null) return json2str(s); return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s; }; for (var i in o) arr.push(&qu…
前言 先看一个段代码 function randArr (arr) { return arr.sort(() => { return (Math.random() - 0.5); }); } 目的是为了实现给定数组的乱序. 利用数组的sort方法,判断随机出来的0~1的值与0.5的大小,实现伪排序. 为什么说是伪排序呢?代码的逻辑没毛病啊. 对,从这个层面来看,简单明了,完美的实现了需求,本着凡事往祖坟刨得精神.来看看这段代码的内部实现. 浏览器实现 ECMA Script The elemen…
前言 处理时间时,常常要考虑用户的输入是否合法,其中一个很典型的场景就是平闰年的判断,网上其实有很多类似的算法,但是其实不必那么麻烦,下面我讲讲的我的思路. 规则 公元年数可被4整除为闰年,但是整百(个位和十位均为0)的年数必须是可以被400整除的才是闰年(比如1900年不是闰年),其他都是平年.例如:1997年是平年,2002年是平年:1996年是闰年,2000年是闰年.平年二月有28天,而闰年二月有29天. 最根本的原因是:地球绕太阳运行周期为365天5小时48分46秒(合365.24219…
Awesome系列的JavaScript资源整理.awesome-javascript是sorrycc发起维护的 JS 资源列表,内容包括:包管理器.加载器.测试框架.运行器.QA.MVC框架和库.模板引擎.数据可视化.时间轴.编辑器等. 前端MVC框架与库 angular.js - 前端MVVM框架,支持双向绑定,实现MVC架构,增强Web应用 aurelia - A Javascript client framework for mobile, desktop and web. backbo…
预筹备之 JavaScript 今朝支流的 JavaScript 框架排名中,jQuery 和 Ext 可算是佼佼者,得到了用户的普遍好评.海内的一些框架许多也是模仿 jQuery 对 JavaScript 停止了包装,不外这些框架的开山祖师 YUI 照样坚持用自己的 JavaScript 类库. jQuery 是今朝用的最多的前端 JavaScript 类库,据初步统计,今朝 jQuery 的占有率曾经跨越 46%,它算是比拟轻量级的类库,对 DOM 的操纵也比拟便利到位,支撑的后果和控件也许…