ngtwewy

简单调用在mac的命令行下面,执行:say hello world 就可以发出"hello world"的声音了,支持中文。文字转为语音新建一个文本文件aa.txt,在终端里在,cd 到该目录,然后执行:say -f aa.txt -o a.m4a 即可生成a.m4a这个语音文件。 -f 后面跟的是需要转换成语音的文件,-o 是 -out 的意思。修改语音声音打开系统偏好设置->辅助功能->语音参考:https://jingyan.baidu.com/article/48b37f8d23eaa61a64648813.htmlhttps://newsn.net/say/mac-command

2020-08-11    JavaScript   
ngtwewy

场景1,有些用户很调皮,快速多次点击一个按钮。2,用户不必特地捣乱,他在一个正常的操作中,都有可能在一个短的时间内触发非常多次事件绑定程序。比如页面绑定的 resize 事件。分析怎么解决?函数节流就是一种办法。函数节流,简单地讲,就是让一个函数无法在很短的时间间隔内连续调用,只有当上一次函数执行后过了你规定的时间间隔,才能进行下一次该函数的调用。函数节流的原理挺简单的,估计大家都想到了,那就是定时器。当我触发一个时间时,先 setTimout 让这个事件延迟一会再执行,如果在这个时间间隔内又触发了事件,那我们就 clear 掉原来的定时器,再 setTimeout 一个新的定时器延迟一会执行

2020-04-07    JavaScript   
ngtwewy

后端篇地址:https://javascript.net.cn/article?id=649相关文档:https://restfulapi.cn/d/271前端代码主要功能是,连接服务器,发送心跳,断开服务器后自动连接。/** * JSSDK 对象 */ var PigIM = { config: {}, // 配置 fromId: {}, // 发送者 ID ws: {}, // Websocket 对象 connection: {}, listen: {}, heartbeatTimer: {},

2020-02-07    JavaScript   
ngtwewy

作用:将一个数组转为用逗号分隔的参数序列。//该运算符主要用于函数调用。function push(array, ...items) {array.push(...items);}function add(x, y) {return x + y;}var numbers = [4, 38];add(...numbers) // 42//扩展运算符取代apply方法的一个实际的例子,应用Math.max方法,简化求出一个数组最大元素的写法。// ES5 的写法Math.max.apply(null, [14, 3, 77])// ES6 的写法Math.max(...[14, 3, 77])//

2019-11-16    JavaScript   
ngtwewy

var numArr = [] var canvas = document.querySelector('#canvas'); var ctx = canvas.getContext('2d'); draw(); canvas.onclick = function () { ctx.clearRect(0, 0, 120, 30); draw(); } function draw() { /*绘制一个矩形颜色随机*/ ctx.fillStyle = randColor(170, 250); ctx.fillRect(0, 0, 120, 50); v

2019-11-16    JavaScript   
ngtwewy

最近探究js原理的过程中遇到了这个挺有趣的问题。先贴代码:var a = {n:1}a.x = a = {n:2}alert(a.x) //undefined在弄懂这个之前,我们先普及一个知识点,就是在javascript运算符中,属性运算符的优先级高于赋值运算符的优先级。因此,a.x是先于赋值之前就进行的。就是说,a.x刚开始是undefined的,这是没错的。接下来我们探究一下连等赋值的赋值顺序:1、从左往右a.x赋值为{n:2};然后a赋值为{n:2};a的重新指向重写了a.x,即.x属性不存在,因此a.x输出为undefined。2、从右往左a赋值为{n:2};直接限制了a.x的赋值,

2019-11-16    JavaScript   
ngtwewy

在文件上传的时候我们我们选择监控change事件来获取文件,如果第一次如果选择了A文件,当再次点开选择A 文件时,change事件没有触发,这时可以用如下方式处理.1. vue项目处理方式:this.$refs.uploadExcelId.value=null;复制该代码到项目中,并且把uploadExcelId换成自己input的ref即可。2. 普通js处理方式:event.target.value=”;尽量不要用删除dom元素,再添加这种操作方式,因为还需要在做事件绑定比较麻烦。

2019-11-16    JavaScript   
ngtwewy

for和forEach的差别是后者不能正常的跳出循环(return、break等),其它的差别不大,把forEach转成for的写法就知道为什么你的for写法可以顺序执行而forEach不能:for:const report = async () => { for (let i = 0, len = arr.length; i forEach:const report = async () => { arr.forEach(async (item) => { await asyncFn(item); }); }; 上述forEach的写法相当

2019-08-25    JavaScript   
ngtwewy

axios API可以通过向 axios 传递相关配置来创建请求axios(config)// 发送 POST 请求 axios({  method: 'post',  url: '/user/12345',  data: {   firstName: 'Fred',   lastName: 'Flintstone'  } }); // 获取远端图片 axios({  method:'get',  url:'http://bit.ly/2mTM3nY',  responseType:'stream' })  .then(function(response) {

2019-08-15    JavaScript   
ngtwewy

DOM由来 因为Internet Explorer4和Netscape Navigation4分别支持不同的DHTML(动态HTML),为了统一标准,负责制定web通信标准的W3C(World Wide Web Consortium,万维网联盟)开始制定DOM. DOM0 Netscape Navigator 4和IE4分别发布于1997年的6月和10月发布的DHTML,他们是未形成标准的试验性质的初级阶段的DOM,称为dom0,并不是标准。 DOM1 DOM1是W3C在1998年制定的标准,DOM1级主要定义了HTML和XML文档的底层结构。在DOM1中,DOM由两个模块组成:

2019-06-27    JavaScript   
ngtwewy

『前端代码无秘密』这句话好似一个业界共识一般在前端领域传播。但在日常的开发过程中,我们又会涉及以及需要相当强度的前端核心代码的加密,特别是在于与后端的数据通信上面(包括HTTP、HTTPS请求以及WebSocket的数据交换)。 比如一个场景,在视频相关的产品中,我们通常需要增加相关的安全逻辑防止被直接盗流或是盗播。特别是对于直播来说,我们的直播视频流文件通常会被划分为分片然后通过协商的算法生成对应的URL参数并逐次请求。分片通常以5至10秒一个间隔,如果将分片URL的获取作为接口完全放置于后端,那么不仅会给后端带来极大的压力外还会带来直播播放请求的延迟,因此我们通常会将部分实现放置于前端

2019-04-10    JavaScript   
ngtwewy

//获取滚动条当前的位置 function getScrollTop() { //在标准w3c下,document.body.scrollTop恒为0,需要用document.documentElement.scrollTop来代替; var scrollTop = 0; if (document.documentElement && document.documentElement.scrollTop) { scrollTop = document.documentElement.scrollTop; }else if (

2019-03-12    JavaScript   
ngtwewy

var base64String = /*base64图片串*/; //这里对base64串进行操作,去掉url头,并转换为byte var bytes = window.atob(base64String.split(',')[1]);//处理异常,将ASCII码小于0的转换为大于0,这里有两种写法 第一种: var ab = new ArrayBuffer(bytes.length); var ia = new Uint8Array(ab); for(var i = 0; i 第二种: var array = []; for(var i = 0;

2019-01-13    JavaScript   
ngtwewy

最基本的动态加载js程序如下: function loadScript(url){ var script = document.createElement("script"); script.type = "text/javascript"; script.src = url; document.body.appendChild(script); } 也可以添加回调函数: function loadScript(url, callback){ var script = document.createElement("script"); scri

2018-10-18    JavaScript   
ngtwewy

window.onload = function () { //初始化编辑器 var toolbarOptions = [ [{ 'header': [1, 2, 3, 4, 5, 6, false] }], ['bold', 'italic', 'underline', 'strike'], ['blockquote', 'code-block'], [{ 'color': [] }, { 'background': [] }], [{ 'align': [] }], ['image'], ['clean'

2018-10-14    JavaScript   
随机推荐
MySQL AUTO_INCREMENT 自动增长的一些知识
JavaScript 正则表达式 API
macOS下禁止Chrome更新
正则表达式变量拼接(未完)
Thinkcmf根据导航分类获取导航
Centos 用户和组管理
JS事件冒泡与捕获、addEventListener--实例演示
thinkphp5 r4控制器中无法使用header进行跳转
手机APP界面颜色搭配案例
async/await 中实现 sleep()