Simple is Happiness
Less is more
JavaScript
JavaScript在Array数组中按指定位置删除或添加元素对象
by ourjs keys JavaScript 1574084865071

JavaScript的数据中可通过splice/slice在指定位置添加或删除元素。另外还有slice、delete等方法实现。

splice方法向/从数组中添加/删除项目,然后返回被删除的项目。该方法会改变原始数组。

arrayObject.splice(index, howmany, item1, ..., itemX)

node.js含有%百分号时,发送get请求时浏览器地址自动编码的问题
by ourjs keys JS学习 JavaScript 1570672932287
目前浏览器会对地址,进行编码,比如这个文件名:
sales\报表.png
在发到后台时,会自动编码成:
/file/view/sales/%E6%8A%A5%E8%A1%A8.png
让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
by ourjs keys JS学习 JavaScript 1564563777511
pre显示文本内容时是不会自动换行的,此时可以添加一些CSS来解决:HTML中pre和textarea可以显示预格式化的文本。即保留空格和换行符。而不必添加<br>和&nbsp;等HTML元素来添加换行和打印空格。

pre {
    word-wrap: break-word;
    white-space: pre-wrap;
    padding: 9.5px;
    background-color: #f5f5f5;
    border: 1px solid #ccc;
}
Facebook发布全新JavaScript引擎Hermes:越来越像Java字节码,JS要统一全端?
by newghost keys JS学习 JavaScript 1563509511352
Facebook在Chain React 2019 大会上发布的一个崭新JavaScript引擎: Hermes,比传统JavaScriptJIT,即时运行的方式不同,Hermes需要先将JavaScript编绎成字节码,这一点很像是Java的方式。比测试可观察,Hermes引擎提升性能较为明显,使用预编绎,很容易得知这些提升所产生的原因。

  • 在应用程序可用的时间上,Hermes能提升一倍的时间效率(减少即时执行的语言解释过程)
  • 在安装包下载大小下,Hermes能减少50%的大小(JS被压缩成了字节码)
  • 在内存利用率上,Hermes能节省30%的内存使用(不需要在解释执行时额外产生的临时内存使用)
  • 在嵌入式设备树莓派上编译QuickJS教程:一个C语言编写的极简JavaScript引擎
    by ourjs keys JS学习 JavaScript 1563211266482
    QuickJS 是一个完全由C语言编写的极小型JavaScript引擎,作者是大名鼎鼎的FFmpeg和QEMU的创建者Fabrice Bellard以及C专家Charlie Gordon。QuickJS采用开源MIT协议,不限制商业用途。它是一个“小而完整的JavaScript引擎”,支持最新的ES2019语言规范。
    因为其复杂度要远远低于用C++编写的Google的V8和Mozilla的SpiderMonkey,因此非常适合在嵌入式设备上使用。
    因为完全由C语言编写,可以很方便地集成到一些著名的C语言程序比如,替换掉Redis和Nginx中的Lua脚本。
    由于可以单独将JS编绎成可执行文件,应用场景更加广泛。
    使用JavaScript的Proxy监听对象属性变化并进行类public/private的访问控制
    by ourjs keys JS学习 JavaScript 1559991024343
    Proxy是ES6的引入的一个对象监听机制。可视为JavaScript对象的一个代理中间件。用户在访问对象时,会触发自定义行为。
    Proxy最简单的用法是可以监听对象属性的变化,比如下面的,当 obj 的 visit 属性改变时,自动更新页面上相应的 input元素值。

    var obj = {}

    var handler = {
      set: function(target, name, value) {    
        //改变被代理对象的值,使之保持一致
        target[name] = value

        var input = document.querySelector('[name=' + name + ']')
        if (input) {
          input.value = value
        }
      }
    }

    var proxy = new Proxy(obj, handler);
    proxy.visit = 100
    JavaScript求一个字符串的字节长度
    by ourjs keys JS学习 JavaScript 1559174024852
    某些场景可能会对输入内容的字节长度有限制,比如说RSA加密算法。但 String.prototype.length 只会统计字符串的字符个数,并不是字节长度。

    同样的字符数,中文要比英文多占用1倍的空间。此时可以通过chartCodeAt来统计字符长度。
    JavaScript中将字符串true或false转换成Boolean类型
    by ourjs keys JS学习 JavaScript 1556256679552
    JavaScript中可以使用parseInt方法将字符串转换成整型。但布尔型没有相关方法。可使用JSON解析:

    JSON.parse("true");
    jQuery用$.prop,$.attr方法来获取或设置checkbox当前选中状态
    by ourjs keys JS学习 JavaScript 1555422521248
    使用$.fn.attr来获取或设置html的checkbox元素的状态。但是界面上此复选框并没有反映到界面上,因为这个只是改变html的DOM结构,并不改变当前选中状态。这时使用 prop 即可

    $('#chb_data_binding').prop('checked', true)
    $('#chb_data_binding').prop('checked')
    > true

    Node.JS中用concat和push连接两个或多个数组的性能比较
    by ourjs keys JS学习 JavaScript 1555299868703
    JavaScript中连接两个数组成一旧新数组,常用concat方法,比如:
    借用apply方法 ,push、splice也可和来连接数组。因为push没有创建新数组,如果想要保挂原对象的引用,可使用push方法。
    那么两者在node.js的性能如何? 我们做了一组测试数据,两种分别测试100万次。

     近期热门 - 点击最多
    1. JavaScript在Array数组中按指定位置删除或添加元素对象
    2. Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
    3. Redis源码分析,在C语言中将当前时间转化成毫秒微秒整数值
    4. Linux下的tar压缩解压缩命令详解,创建解压目录到.tar.gz包
    5. CentOS注册系统服务,添加自动启动脚本
    6. 用OnceOA旺司在树莓派等arm设备免费搭建私有云版有道云笔记文档管理系统,在线编辑Markdown,同步备份手机照片
    7. node.js含有%百分号时,发送get请求时浏览器地址自动编码的问题
    8. Node.JS用纯JavaScript生成图片或滑块式验证码
    9. 树莓派ARM开发板使用TF卡启动和系统安装到EMMC启动,硬盘存储读写速度对比测试
    10. Node.JS枚举统计当前文件夹和子目录下所有代码文件行数

      全端社区 - 最新回复
    1. Redis源码分析,在C语言中将当前时间转化成毫秒微秒整数值
    2. JavaScript在Array数组中按指定位置删除或添加元素对象
    3. Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
    4. Linux下的tar压缩解压缩命令详解,创建解压目录到.tar.gz包
    5. CentOS注册系统服务,添加自动启动脚本
    6. 用OnceOA旺司在树莓派等arm设备免费搭建私有云版有道云笔记文档管理系统,在线编辑Markdown,同步备份手机照片
    7. node.js含有%百分号时,发送get请求时浏览器地址自动编码的问题
    8. Node.JS用纯JavaScript生成图片或滑块式验证码
    9. 树莓派ARM开发板使用TF卡启动和系统安装到EMMC启动,硬盘存储读写速度对比测试
    10. Node.JS与USB接口通信:检测U盘/移动硬盘插拔事件和发送接数据

      开源的 OurJS
    OurJS开源博客已经迁移到 OnceOA 平台。

      关注我们
    扫一扫即可关注我们:
    OnceJS

    OnceOA