
js
yzy_blog
这个作者很懒,什么都没留下…
展开
-
可选链介绍
可选链 ?. 是一种 访问嵌套对象属性的防错误方法 。即使中间的属性不存在,也不会出现错误。 如果可选链 ?. 前面部分是 undefined 或者 null,它会停止运算并返回 undefined。语法:obj?.propobj?.[expr]arr?.[index]func?.(args)复制代码** 我们改造前面示例代码:// 1. 对象中不存在指定属性const leo = {};console.log(leo?.name?.toString()); // unde转载 2020-08-13 11:27:57 · 2293 阅读 · 0 评论 -
React Hooks
React Hook是FaceBook的React小组2018年底推出。2019年React Hooks是React生态圈里边最火的新特性了。它改变了原始的React类的开发方式,改用了函数形式;它改变了复杂的状态操作形式,让程序员用起来更轻松;它改变了一个状态组件的复用性,让组件的复用性大大增加。React Hooks 与原始编写形式对比原始class写法:import React...原创 2019-12-31 11:48:54 · 176 阅读 · 0 评论 -
textarea标签中的换行符和空格
问题:获取到textarea标签内的格式(换行符、空格),存入数据库,展示的时候能够保留基本格式。解决思路:IE9以上、FF、chrome的换行为\n, IE7-8的时候换行为\r\n,空格都为\s所以需要利用replace把不同浏览器的\n和\r\n都替换为html代码的,把\s空格替换为html的 注:如果使用jQuery的val()获取textarea的值...转载 2019-12-25 10:54:46 · 1136 阅读 · 0 评论 -
函数表达式使用的注意事项
函数声明提升sayHi();function satHi() { alert("Hi");}//这个是没问题的,函数在代码执行之前会先读取函数声明。但是当使用函数表达式的时候下面的例子会抛出错误。sayHi(); //错误;函数不存在var sayHi = function() { alert("Hi");}函数声明与表达式之间的区别。//不要这样做i...原创 2018-10-30 11:37:29 · 490 阅读 · 0 评论 -
继承
1.原型继承function SuperType(){ this.property = true;}SuperType.prototype.getSuperValue = function() { return this.property;}function SubType() { this.subproperty = false;}//继承了SuperT...原创 2018-10-29 19:48:27 · 116 阅读 · 0 评论 -
倒计时
var activity_endts = 1537999200 * 1000;//活动结束时间戳 (毫秒级) run(activity_endts); //定时器 function run(enddate){ ...原创 2018-09-21 09:52:44 · 341 阅读 · 0 评论 -
turn.js
中文 API初始化参数配置选项<div id="flipbook"> <div class="hard"> Turn.js </div> <div class="hard"></div> <div> Page 1 </div> &原创 2018-08-21 19:50:15 · 1638 阅读 · 0 评论 -
html2canvas截取图片跨域解决办法
var dataURL;html2canvas(document.querySelector(".poster_template_con"),{useCORS:true,logging:true}).then(canvas => { document.body.appendChild(canvas); $("canvas"...原创 2018-08-28 18:42:00 · 5020 阅读 · 1 评论 -
关于jquery中data()的问题
jQuery中data()解释为可以获取,设置元素自定义的属性,但是尽量不用data()方法去获取元素的自定义属性;因为会有一些问题。<div class="div" data-id="1"></div><script> var id = $(".div").data("id"); //1 $(".div&qu原创 2018-11-20 14:03:42 · 1292 阅读 · 0 评论 -
javascript高级程序设计(第3版)
链接: https://pan.baidu.com/s/1DX6vP1uwveDoZMzvrjtY5A 提取码: tx2k原创 2018-12-07 17:42:03 · 213 阅读 · 0 评论 -
react中实现在类定义的组件中绑定this上下文的效果的几种方法总结
bind方法。 这个方法可以帮助我们绑定事件处理器的this,并可以向事件处理器中传递参数,比如:import React, { Component } from 'react';class App extends Component { handleClick(e, arg) { console.log(e, arg); } render(...原创 2019-01-09 18:06:07 · 468 阅读 · 0 评论 -
为什么越来越少的人用 jQuery?
最早期的开发,大多都使用jQuery,它给我们带来了很多的便利:快速选取元素,方便操作DOM元素的API,各个浏览器之间完美的兼容性,链式操作,动画、ajax等等都是jQuery为前端开发人员来带的好处。为什么现在越来越少人用了呢?我来分以下几点,阐述我的想法:一、JS更新带来的冲击:1.快速选取DOM节点对于大部分使用jQuery的开发工程师来说,能够快速选取DOM节点,这个无疑是一...转载 2019-01-09 16:39:42 · 192 阅读 · 0 评论 -
h5的复制copy功能实现
<a id="text" href="#"> 我是被复制的内容 </a><span id="copy_btn">复制按钮</span>function copyFn(val){ window.getSelection().selectAllChildren(val);原创 2019-03-11 14:10:42 · 3225 阅读 · 0 评论 -
webpack多环境(dev stg prd qa)打包问题
针对前后端分离的项目,在多环境部署的时候,不同环境的前端分别调用的后端接口不同,怎么实现呢?1. 脚本入口地方传入环境信息 "scripts": { "build:dev": "cross-env NODE_ENV=dev node build/build.js", "build:stg": "cross-env NODE_ENV=stg node build/b...转载 2019-06-06 13:47:55 · 1143 阅读 · 0 评论 -
Learn Regex (学习正则)
1. 基本匹配正则表达式其实就是在执行搜索时的格式, 它由一些字母和数字组合而成. 例如: 一个正则表达式the, 它表示一个规则: 由字母t开始,接着是h,再接着是e."the" => The fat cat sat on the mat.正则表达式123匹配字符串123. 它逐个字符的与输入的正则表达式做比较.正则表达式是大小写敏感的, 所以The不会匹配the....转载 2019-08-08 16:20:32 · 1217 阅读 · 0 评论 -
h5键盘收起弹出js判断方法
// 判断设备类型 var judgeDeviceType = function() { var ua = window.navigator.userAgent.toLocaleLowerCase(); var isIOS = /iphone|ipad|ipod/.test(ua); var isAndroid = /android/.te...原创 2019-08-21 15:16:44 · 3609 阅读 · 0 评论 -
img的url转base64
function getBase64Image(img) { var canvas = document.createElement("canvas"); $("canavs").hide(); canvas.width = img.width; canvas.height = img...原创 2018-08-28 18:38:11 · 5603 阅读 · 1 评论 -
集合(set类)
function Set() { let items = {}; //has(value)方法 //1 this.has = function(value) { return value in items; }; //2 this.has = function(value) { return item...原创 2018-07-06 18:36:58 · 1658 阅读 · 0 评论 -
HTML/CSS/JS编码规范
HTML/CSS/JS编码规范文章是来自掘金的一篇文章。觉得写得很好,很详细。记录一下。目录:一、HTML编码规范二、CSS编码规范三、JS编码规范一、HTML编码规范1. img标签要写alt属性根据W3C标准,img标签要写alt属性,如果没有就写一个空的。但是一般要写一个有内容的,根据图片想要表达的意思,因为alt是在图片无法加载时显示的文字。如下不太好的写法:<img src="co...转载 2018-04-23 16:08:52 · 904 阅读 · 0 评论 -
加载更多
/* * loadmore.js * 加载更多 * 可以传的参数默认有:size,scroll 可以自定义 * */;(function(w,$){ var loadmore = { /*单页加载更多 通用方法 * * @param callback 回调方法 * @param config 自定义参数 * */ get : function(...原创 2018-05-14 10:26:49 · 367 阅读 · 0 评论 -
提示弹窗的封装
function showTip(tip, delay, position_top) { tip = tip || '出错,请检查'; position_top = position_top ? position_top : '50px'; position_top = (position_top.index...原创 2018-05-16 13:30:47 · 667 阅读 · 0 评论 -
oninput,onpropertychange,onchange的区别
onchange触发事件必须满足两个条件:a)当前对象属性改变,并且是由键盘或鼠标事件激发的(脚本触发无效)b)当前对象失去焦点(onblur);onpropertychange的话,只要当前对象属性发生改变,都会触发事件,但是它是IE专属的;oninput是onpropertychange的非IE浏览器版本,支持firefox和opera等浏览器,但有一点不同,它绑定于对象时,并非该对象所有属性...原创 2018-05-31 15:33:12 · 266 阅读 · 0 评论 -
文字滚动插件
<UL//文字滚动插件(function($){ $.fn.txtscroll=function(index,item){ var _wrap=$(this); var _interval=2000; var _moving; _wrap.hover(function(){ clearInterval(_mo...原创 2018-06-22 10:44:08 · 555 阅读 · 0 评论 -
react自制日期选择器
自己写的react日期选择器,有bug请留言。效果如图:代码如下:import React from 'react';class Calendar extends React.Component { constructor(props) { super(props); this.state = { year: props.year, month: props.month, day:...原创 2018-05-31 20:25:37 · 2083 阅读 · 0 评论 -
图片出错加载默认图片
html<img src="images/true.jpg" onerror="whenError(this)">jsfunction whenError(a){ a.onerror=null; a.src='images/error.png'; console.log("图片出错的时候调用默认图片")};原创 2018-06-08 18:40:14 · 2141 阅读 · 0 评论 -
无缝滚动
<div class="scroll_div "> <ul> <li></li> </ul></div>function scroll() { $(".ring_scroll_div ul").animate({ "margin-t原创 2018-06-19 10:44:04 · 174 阅读 · 0 评论 -
验证码倒计时
<div id="verifySms"> <span>获取验证码</span> </div>var $verifySmsText = $('#verifySms span'); var smsSendable = true; var countdownStart = 60; v...原创 2018-06-28 10:05:42 · 142 阅读 · 0 评论 -
vue2.0之多页面的开发
vue2.0之多页面的开发我们平常用vue开发的时候总觉得vue好像就是专门为了单页面应用而诞生的,其实不是。因为vue在工程化开发的时候很依赖webpack,而webpack是将所有的资源整合到一块,弄成一个单页面。但是vue不止可以做单页面,它还可以做多页面,如果要做多页面的话需要对他的依赖,也就是webpack就是重新配置才可以。本文将详细讲webpack的配置。vue的开发有两种,一种是直...转载 2018-06-28 15:17:49 · 3350 阅读 · 1 评论 -
javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法(简单复制)
javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法(其实有些是简单复制)前言在js中,数组和对象的复制如果使用=号来进行复制,那只是浅拷贝。如下图演示: 如上,arr的修改,会影响arr2的值,这显然在绝大多数情况下,并不是我们所需要的结果。 因此,数组以及对象的深拷贝就是javascript的一个基本功了。数组的深拷贝条条大道通罗马,实现数组的深拷贝,是...原创 2018-07-04 17:12:32 · 395 阅读 · 0 评论 -
一些简单排序方法
冒泡排序冒泡排序比较任何两个相邻的项,如果第一个比第二个大,则交换他们。var bubbleSort = function() { var length = array.length; for (var i=0; i<length; i++){ for(var j=0; j<length-1; j++){ if(arra...原创 2018-07-23 16:07:25 · 168 阅读 · 0 评论 -
栈
栈是一种遵从后进先出(LIFO)原则的有序集合。新添加的或待删除的元素都保存在栈的同一端,称作栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈底。function Stack() { let items = []; //向栈添加元素 this.push = function(element) { items.push(element); ...原创 2018-07-05 21:30:25 · 195 阅读 · 0 评论 -
队列
队列是遵循FIFO(First In First Out,先进先出,也称为先来先服务)原则的一组有序的项。队列在尾部添加新元素,并从顶部移除元素。最新添加的元素必须排列在队列的末尾。function Queue() { let items = []; //向队列添加元素 this.enqueue = function(element) { items.pus...原创 2018-07-05 21:59:44 · 506 阅读 · 0 评论 -
圆形进度条(canvas)
效果如下图:代码如下<canvas class="pull-right list_canvas" width="200" height="200" style="height:100px;width:100px"></canvas> function drawarc(percent, ctx, sR) { if (percent原创 2018-07-24 10:27:57 · 588 阅读 · 0 评论 -
改变video的src
直接改变video的source是不能播放视频的 <!-- 第一种 --> <video id="video_play"> <source src="" type="" id="video1"> </video> <button id="click1"&g原创 2018-07-24 13:23:57 · 9166 阅读 · 2 评论 -
层级结构展开
json m = {“a”:1,“b”:{“c”:2,“d”:[3,4]}}转换成o = {“a”:1,“b.c”:2,“b.d”:[3,4]}一个朋友写的JS实现方法:函数JtoO(json){ var o = {}; var path = []; 函数s(json){ for(var i in json){ ...原创 2018-04-17 10:47:25 · 1000 阅读 · 0 评论