javascript
文章平均质量分 68
啊哈前端
web前端
展开
-
js事件循环
先执行同步任务,再执行异步任务,异步任务分两种,一种是宏任务,比如定时器;另一种是微任务,比如Promise;在同一个事件循环里,优先执行微任务,再执行宏任务。...原创 2019-03-17 22:44:45 · 157 阅读 · 0 评论 -
javascript中数组方法(未完待续)
js数组逆序 /* var array=[1,2,3,4,5,6,7,8,9]; for(var i=0,length=array.length;i<length;i++){ var halfIndex=length%2==0?halfIndex=length/2:Math.ceil(leng原创 2016-04-12 01:03:59 · 422 阅读 · 0 评论 -
js小技巧(持续更新)
1、检查变量是否存在var somevar="";if(somevar){ //这种情况下,返回false} if(typeof somevar!=="undefined"){ //这种情况下返回true //测试变量是否已经被初始化}2、逻辑运算符的优先级 ()>!>&&>|| (尽量使用括号来设定优先级,这样代码才有更好的可读性)原创 2016-03-08 00:14:09 · 498 阅读 · 0 评论 -
js实现继承几种方法(未完待续)
js继承 //一、js 使用临时构造器实现继承 begin function Shape() {} //将共享的属性放在原型中 Shape.prototype.name = "shape"; Shape.prototype.toString = function () { return this.name; } function TwoDS原创 2016-09-28 22:04:23 · 332 阅读 · 0 评论 -
js判断一个字符串中出现次数最多的字符串
js判断一个字符串中出现次数最多的字符 function charShowMostTime(str){ var charobj = {}; for(var i = 0;i < str.length;i++){ var charStr = str.charAt(i); if(!charobj[charStr]){ c原创 2016-09-28 15:36:51 · 1568 阅读 · 0 评论 -
js实现简单的日历
js简单日历 *{ margin: 0; padding: 0; } /* var myDate=new Date(); var year=myDate.getFullYear();//年份 var month=myDate.getMonth()+1;//月份是0-11; var day=myDate.getDate();原创 2016-09-28 12:49:07 · 4155 阅读 · 2 评论 -
使用js原型实现石头剪刀布猜拳
以上是所需图片以下是html部分: 猜拳游戏(石头剪刀布) 猜拳游戏 玩家 电脑原创 2016-09-22 11:36:35 · 6755 阅读 · 3 评论 -
js正则表达式基础(未完待续)
1、正则表达式直接量字符 javascript正则表达式语法也支持非字母的字符匹配,这些字符需要通过反斜线(\)作为前缀进行转义。在正则表达式中,许多标点符号具有特殊含义,需要进行转义: ^$.*+?=!:|\/()[]{} 对于想按照直接量进行匹配的字母和数字,尽量不要用反斜线对其转义。2、字符类将直接字符单独放进方括号内就组成了字符类。一个字符类可以匹配它所包含的任意原创 2016-03-22 23:19:21 · 509 阅读 · 0 评论 -
js打印顺序和倒序乘法口诀
9*9乘法表 function cheng(){//顺序 var row=9,//行 i=1, //初始化循环值 col=9;//列 for(i;i<=row;i++){ for(var j=1;j<=i;j++){ document.write(j+"*"+i+"="+i*j+" "); }原创 2016-09-11 13:50:54 · 3033 阅读 · 0 评论 -
javascript打印菱形和镂空菱形
js菱形 * { margin: 0; padding: 0; } window.onload=function(){ var rows=window.prompt("请输入行"); if(rows%2==0){ rows原创 2016-08-30 14:40:39 · 2215 阅读 · 0 评论 -
js打字机效果
文字打印 * { margin: 0; padding: 0; } #print,#print2{ min-height: 18px; line-height: 18px; } window.onload原创 2016-08-03 14:50:14 · 1381 阅读 · 0 评论 -
js随机产生40个60至100之间的不相同的数字存入数组并顺序排序
随机产生40个60至100之间的不相同的数字存入数组并顺序排序 var ary=[], obj={}; for(var i= 0;i<40;i++){ var randomnum=Math.ceil(Math.random()*40)+60; if(!obj[randomnum]){ obj[rando原创 2016-07-09 14:29:33 · 3734 阅读 · 0 评论 -
js数组去重
去除数组重复的元素 var ary=[1,2,3,4,5,123,5,23,89,45,66,2,3,4,5,1,23,89];//重复的元素: 1,2,3,4,5,23,89 function only(ary){ var obj={}, temp=[]; for(var i= 0,length=a原创 2016-07-09 13:32:43 · 246 阅读 · 0 评论 -
javascript原型链简单示例(实现简单的继承)
原型链 //javascript中的每个函数中都有一个指向某一对象的prototype属性。 //该函数被new操作符调用时会创建并返回一个对象,并且该对象中会有 // 一个指向其原型对象的秘密链接。通过该秘密链接(在某些环境中,该链接名为_proto_) //我们就可以在新建的对象中调用相关原型对象的方法和属性 //而原型对象自身也具有对象固有的普遍特性,因此本身也包含了原创 2016-05-07 13:49:11 · 904 阅读 · 0 评论 -
javascript格式化日期
Date.prototype.format = function(f){ var date = {//获取对象中的日期 "Y" : this.getFullYear(),//获取年 "M" : (this.getMonth() + 1),//获取月 "D" : this.getDate(),//转载 2016-06-07 17:37:50 · 279 阅读 · 0 评论 -
js柯里化(待续)
<!doctype html><html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta name="Author&q转载 2016-11-25 17:44:10 · 271 阅读 · 0 评论 -
javascript语言精粹-读书笔记
1、javascript优秀的想法包括函数、弱类型、动态对象和富有表现力的对象字面量表示法,那些糟糕的想法包括基于全局变量的编程模型。2、如果一个数字字面量有指数部分,那么这个字面量的值等于e之前的数字与10的e之后数字的次方相乘。所以100和1e2是相同的数字。3、switch、while、for和do语句允许有一个可选的前置标签(label),它配合break语句来使用。4、js可...转载 2019-03-08 22:24:31 · 249 阅读 · 0 评论 -
js编程基础知识一
一、语言设计思路c基本语法借鉴java数据类型和内存管理借鉴scheme语言的函数,函数是"第一等公民"借鉴self的prototype原型机制实现继承javascript = 函数式编程 + 面向对象编程二、面向对象基本规则1、对象:属性跟方法的综合体2、不存在独立的函数|属性 所有的函数必须是某个对象的方法|属性3、prototype 原型编程语言 基本规则...转载 2019-03-04 17:11:41 · 2083 阅读 · 0 评论 -
es6+不得不掌握的基础部分
一、变量声明1、leta、let不允许重复声明同一个变量var a = 0;let a = 2; // 报错;Identifier 'a' has already been declaredfunction demo (num) { let num; //这里使用let声明,同样属于重复声明变量}{ var b = 0;}let b = 2;b、let没有变量提升console...原创 2018-07-15 16:10:45 · 788 阅读 · 0 评论 -
原来我不理解js原型链
再说原型链之前,我们先实现一个最简单的js继承;我们以动物类(Animal类)和人类(Person类)为例,用js实现Person继承Animal的例子:// 构造函数 function Animal (name, age, height, weight) { this.name = name; this.age = age; this.height = heigh...原创 2018-07-06 21:28:58 · 257 阅读 · 0 评论 -
初识javascript编程模式
编程模式 body { width: 100%; height: 1000px; } 这是body的内容! //一、行为隔离 /* * 1.1、内容(html) * 1.2、外观(css) * 1.3、行为(javascript) *1.4、准则:转载 2017-04-01 17:55:24 · 343 阅读 · 0 评论 -
javascript设计模式
设计模式 /* * 1、单件模式(单例模式) * */ //只创建一个实例 var Singleton = (function(){ var instantiated; function init(){ return { publicMethod: function(){转载 2017-04-06 14:18:39 · 349 阅读 · 0 评论 -
javascript命名空间的实现
var app = {}; app.namespace = function(name){ var parts = name.split('.'); var current = app; debugger; for(var i in parts){ if(!current[parts[i]]){转载 2017-04-01 11:12:32 · 649 阅读 · 0 评论 -
javascript dom操作
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>dom编程</title> <link rel="stylesheet" href="css/b原创 2016-08-20 23:25:47 · 1001 阅读 · 0 评论 -
js深拷贝
js深拷贝 var s = []; console.log(s['name']); //p:要继承的对象;c: 传入的父对象里面的子对象 function deepCopy(p, c){ var c = c || {}; debugger; for(let i in p){ if(typeof p[i] === 'obj转载 2017-03-28 17:24:23 · 402 阅读 · 0 评论 -
某老师给我的javascript学习建议
JS学习建议解码有一个通用理论叫“一万小时定律”(不是绝对),做任何事物的深入认知与把握都需要长时间的积累,才能达到自己期望的高度。虽然你接触JavaScript有一段时间了,并且利用业余时间学习,但是过程还是要有的。基础知识那一关你坚持过来了,重头戏是实践中出真理。我在学习方案上给予一定的建议,希望对你有所帮助,感谢:)送你一句话:天行健君子以自强不息!很虚,但很管用的一句话!下面,结转载 2017-04-07 14:49:41 · 620 阅读 · 0 评论 -
获取当前浏览器的类型和版本号
//获取当前浏览器类型和版本号 function getBrowserInfo() { var agent = navigator.userAgent.toLowerCase() ; var regStr_ie = /msie [\d.]+;/gi ; var regStr_ff = /firefox\/[\d.]+/gi转载 2017-03-09 18:03:56 · 3039 阅读 · 0 评论 -
pc与移动端互相跳转
1、PC端检测是否是移动设备 !function(){ function params(u, p){ var m = new RegExp("(?:&|/?)"+p+"=([^&$]+)").exec(u); return m ? m[1] : ''; } if(/iphone|ios|android|ipod/i.test(navigato转载 2017-02-10 10:07:33 · 5295 阅读 · 0 评论 -
js中prototype的陷阱
原型陷阱 //当我们对原型对象执行完全替换时,可能会触发原型链中某种异常 //prototype.constructor属性是不可靠的 function Dog(){ this.tail=true; } var benji=new Dog(); var rusty=new Dog(); Dog.prototype.say=function(){ return "原创 2016-05-05 22:51:41 · 1314 阅读 · 0 评论 -
javascript原型prototype
原型属性prototype//一、利用原型添加方法与属性//1、创建一个构造器函数Gadget() function Gadget(name,color){ this.name=name; this.color=color; this.whatAreYou=function(){ return "I am a "+this.color+" "+this.nam原创 2016-05-05 22:31:33 · 402 阅读 · 0 评论 -
使用js实现数组逆序
js数组逆序 var array=[1,2,3,4,5,6,7,8,9]; for(var i=0,length=array.length;i<length;i++){ var halfIndex=length%2==0?halfIndex=length/2:Math.ceil(length原创 2016-04-11 01:15:17 · 8099 阅读 · 0 评论 -
使用闭包实现显示隐藏div
手机绑定 当前手机号码:$!{user.phone} 新手机号码* 短信验证码* 邮箱绑定 当前电子邮箱:$!{user.email} 新电子邮箱* $(func原创 2016-03-14 14:38:09 · 427 阅读 · 0 评论 -
有iframe的情况下获取元素
1、在iframe中获取父窗口的元素格式:window.parent.document.getElementById("父窗口的元素ID").click();2、在父窗口中获取iframe中的元素 格式:$("#iframe的ID").contents().find("#iframe中的控件ID").click();//jquery 方法1原创 2016-03-01 10:55:31 · 330 阅读 · 0 评论 -
禁止选取网页中的文字
body { text-align: center; vertical-align:middle; height: 39px; overflow: hidden; moz-user-select: -moz-none; -moz-user-select:转载 2016-01-11 15:52:00 · 357 阅读 · 0 评论 -
JavaScript中的this详解
this属于JS的底层知识,了解this之后,能够实现一些基本的功能,但是感觉最重要的是,this是面向对象必不可少的组成部分,如果希望能够逐渐的掌握面向对象,this必然是不可少的。查看this指向的一句话法则:永远指向其所在函数的所有者如果没有所有者时,指向window。理解this的要点:关键在于将函数与函数名分开看待。同一个函数,在不同的执行方法下,会有不同的效果。如何来进行理转载 2015-12-23 16:18:31 · 376 阅读 · 0 评论 -
javascript表格内容的展开和折叠
表格内容的展开和折叠 h2,h5,#tooltipMsg,p { white-space: nowrap; } td { border: 1px solid #ccc; height: 50px; text-align: center;原创 2016-01-08 13:50:32 · 5587 阅读 · 1 评论 -
javascript限制复选框最多选中几项
限制复选框最多选几项 最多选中 1 2 3 4 5 6 项 var maxnum=1,num= 0,checkboxs=document.getElementsByName("checkmost"),al原创 2016-01-05 14:20:50 · 956 阅读 · 0 评论 -
javascript动态添加下拉选项
javascript动态添加下拉选项 1 2 3 var target=document.getElementById("dynamicsel"), addoption=document.getElementById("addoption"),i=4; addoption.onclick=function(){原创 2016-01-05 17:05:48 · 563 阅读 · 0 评论 -
javascript实现全选/取消全选,反选/取消反选
全选/取消全选,反选/取消反选全选/取消全选反选/取消反选 window.onload=function(){ var targets=document.getElementsByName("checkmost"), selectAll=document.getElementById("sel原创 2016-01-05 15:19:59 · 1432 阅读 · 0 评论 -
javascript中的for in语句详解
代码如下: for(variable in object) statementvariable 是声明一个变量的var语句,数组的一个元素或者是对象的一个属性在循环体内部,对象的一个属性名会被作为字符串赋给变量variable。注意:对象的有些属性以相同的方式标记成了只读的,永久的(不可删除的)或者不可列举的,这些属性使用for/in循环不能枚举出来。虽然所有的转载 2016-01-05 09:35:43 · 492 阅读 · 0 评论