js代码

JS 截取字符串-全是干货

杀马特。学长 韩版系。学妹 提交于 2020-01-08 11:58:56
一、需求场景 大家在平时的开发中,肯定会遇到“某些字符超过多少字截断,并显示...”的需求,特别是在移动端,碍于屏幕尺寸的限制,某些“昵称”,“备注”等等字段,经常会让截断,后面跟着仨点。 1、纯汉字或纯英文字符串 直接用slice、substr、substring、splice等方法就可以直接按照需求截断,这里不做解释啦,当然我下面介绍的方法也可以实现。 2、中英文组合、表情的字符串 这才是咱们今天的主角 二、代码片段 /** * @获取字符串字节长度 * @param {String} str * @returns */ function getStrLen (str) { let len = 0; for (let i = 0; i < str.length; i++) { let currLen = str.charCodeAt(i); if (currLen >= 0 && currLen <= 128) { len += 1; } else { len += 2; } } return len; } /** * @截取指定长度的字符串,超出部分显示指定字符 * @param {*} name * @param {number} [len=8] * @param {string} [endStr="..."] * @returns */ function

JS代码优化小技巧

风格不统一 提交于 2020-01-08 10:03:43
下面介绍一种JS代码优化的一个小技巧,通过动态加载引入js外部文件来提高网页加载速度 【基本优化】 将所有需要的<script>标签都放在</body>之前,确保脚本执行之前完成页面渲染而不会造成页面堵塞问题,这个大家都懂的。 【合并JS代码,尽可能少的使用script标签】 最常见的方式就是带代码写入一个js文件中,让页面只使用一次<script></script>标签来引入 【无堵塞加载JS】 通过给script标签增加 defer属性或者是 async 属性来实现 <script src="file.js" defer ></script> 注解: async 和 defer 不同之处是 async 加载完成后会自动执行脚本, defer 加载完成后需要等待页面也加载完成才会执行代码 【动态创建script来加载-推荐】 function loadJS( url, callback ){ var script = document.createElement('script'), fn = callback || function(){}; script.type = 'text/javascript'; //IE if(script.readyState){ script.onreadystatechange = function(){ if( script

JS基础知识积累4

吃可爱长大的小学妹 提交于 2020-01-08 09:29:05
循环结构 while结构 代码结构 结构解析 do-while结构 代码结构 结构解析 for循环结构 代码结构 结构分析 三种循环结构的使用场景 三种循环的注意点 箩筐思想求和 打擂思想求极值 循环嵌套 break和continue关键字 经典例题 while结构 代码结构 while ( 条件 true / false ) { 循环体:重复执行代码 注意:循环变量自增 } 结构解析 判断条件是否成立,如果成立,执行循环体代码,重新判断条件是否成立 如果不成立,跳出循环,执行大括号之后的代码 条件语句可以是: 关系表达式 布尔类型的值 其他类型的值(都会转换成布尔类型) do-while结构 代码结构 do { 循环体:条件成立时重复执行的代码 } while ( 判断条件 true / false ) 结构解析 先无条件执行一遍循环体,然后再判断,如果条件成立,就重复执行循环体代码 特点:先斩后奏 for循环结构 代码结构 for ( 语句 1 ;语句 2 ;语句 3 ) { 循环体:条件成立时重复执行的代码 } 语句1:声明变量,来记录循环次数,叫做循环变量 语句2:判断条件(通常是条件表达式),他使用来控制循环的结果 语句3:通常都是循环变量的自增自减 结构分析 执行语句1(声明循环变量) 执行语句2,判断条件是否成立 2. 1 如果成立 执行循环体代码 2. 2

前端模块化——彻底搞懂AMD、CMD、ESM和CommonJS

廉价感情. 提交于 2020-01-08 08:38:03
我们知道,在NodeJS之前,由于没有过于复杂的开发场景,前端是不存在模块化的,后端才有模块化。NodeJS诞生之后,它使用CommonJS的模块化规范。从此,js模块化开始快速发展。 模块化的开发方式可以提供代码复用率,方便进行代码的管理。通常来说, 一个文件就是一个模块,有自己的作用域,只向外暴露特定的变量和函数 。目前流行的js模块化规范有CommonJS、AMD、CMD以及ES6的模块系统。下面开始一一介绍: 回到顶部 CommonJS NodeJS是CommonJS规范的主要实践者,它有四个重要的环境变量为模块化的实现提供支持: module 、 exports 、 require 、 global 。实际使用时,用 module.exports 定义当前模块对外输出的接口(不推荐直接用 exports ),用 require 加载模块。 复制// 定义模块math.js var basicNum = 0; function add(a, b) { return a + b; } module.exports = { //在这里写上需要向外暴露的函数、变量 add: add, basicNum: basicNum } /** 必须加./路径,不加的话只会去node_modules文件找 **/ // 引用自定义的模块时,参数包含路径,可省略.js var math =

node js 入门指南

假如想象 提交于 2020-01-08 08:26:45
一旦你已经安装了 Node,让我们尝试构建第一个 Web 服务器。 请创建一个“app.js”文件,黏贴以下代码: const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); }); 然后使用 node app.js 运行程序,访问 http://localhost:3000 ,你就会看到一个消息,写着“Hello World”。 参考 http://node-js.club 来源: https://www.cnblogs.com/itucao/p/10872611.html

js页面跳转整理

谁说胖子不能爱 提交于 2020-01-08 08:26:17
20元现金领取地址: http://jdb.jiudingcapital.com/phone.html 内部邀请码: C8E245J (不写邀请码,没有现金送) 国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。 总结一:js页面跳转 1.window.location.href 方式 <script language="javascript" type="text/javascript"> window.location.href="target.aspx"; </script> 2.window.navigate 方式跳转 <script language="javascript"> window.navigate("target.aspx"); </script> 3.window.loction.replace 方式实现页面跳转,注意跟第一种方式的区别 <script language="javascript"> window.location.replace("target.aspx"); </script> 有3个jsp页面(1.aspx, 2.aspx, 3.aspx),进系统默认的是1.aspx,当我进入2.aspx的时候, 2.aspx里面用 window.location

Js apply方法详解

梦想与她 提交于 2020-01-08 08:12:07
Js apply方法详解 我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记,希望和大家分享.. 如有什么不对的或者说法不明确的地方希望读者多多提一些意见,以便共同提高.. 主要我是要解决一下几个问题: 1.apply和call的区别在哪里 2.什么情况下用apply,什么情况下用call 3.apply的其他巧妙用法(一般在什么情况下可以使用apply) 我首先从网上查到关于apply和call的定义,然后用示例来解释这两个方法的意思和如何去用. apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性. Function.apply(obj,args)方法能接收两个参数 obj:这个对象将代替Function类里 this对象 args:这个是数组,它将作为参数传给Function(args-->arguments) call:和apply的意思一样,只不过是参数列表不一样. Function.call(obj,[param1[,param2[,…[,paramN]]]]) obj:这个对象将代替Function类里 this对象 params:这个是一个参数列表 1.apply示例: <script type= "text

js页面跳转整理

强颜欢笑 提交于 2020-01-08 05:37:12
js方式的页面跳转 1.window.location.href方式 <script language="javascript" type="text/javascript"> window.location.href="target.aspx"; </script> 2.window.navigate方式跳转 <script language="javascript"> window.navigate("target.aspx"); </script> 3.window.loction.replace方式实现页面跳转,注意跟第一种方式的区别 <script language="javascript"> window.location.replace("target.aspx"); </script> 有3个jsp页面(1.aspx, 2.aspx, 3.aspx),进系统默认的是1.aspx,当我进入2.aspx的时候, 2.aspx里面用window.location.replace("3.aspx"); 与用window.location.href ("3.aspx"); 从用户界面来看是没有什么区别的,但是当3.aspx页面有一个"返回"按钮,调用window.history.go(-1); wondow.history.back();方法的时候,一点这个返回按钮就要返回2

Js apply()使用详解

孤街醉人 提交于 2020-01-08 05:32:17
Js apply方法详解 我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记,希望和大家分享.. 如有什么不对的或者说法不明确的地方希望读者多多提一些意见,以便共同提高.. 主要我是要解决一下几个问题: 1.apply和call的区别在哪里 2.什么情况下用apply,什么情况下用call 3.apply的其他巧妙用法(一般在什么情况下可以使用apply) 我首先从网上查到关于apply和call的定义,然后用示例来解释这两个方法的意思和如何去用. apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性. Function.apply(obj,args)方法能接收两个参数 obj:这个对象将代替Function类里 this对象 args:这个是数组,它将作为参数传给Function(args-->arguments) call:和apply的意思一样,只不过是参数列表不一样. Function.call(obj,[param1[,param2[,…[,paramN]]]]) obj:这个对象将代替Function类里 this对象 params:这个是一个参数列表 1.apply示例: <script type= "text

JS获取时间戳+C#水煎戳转换

吃可爱长大的小学妹 提交于 2020-01-08 05:17:24
JS获取了当前毫秒的时间戳。 var timestamp=new Date().getTime(); //第二种方法: //var timestamp = (new Date()).valueOf(); 结果:1429527789146 C#将日期时间类型转换成时间戳: /// <summary> /// 时间转换为时间戳字符串 /// </summary> /// <param name="dt"></param> /// <returns></returns> public string GenerateTimeStamp(DateTime dt) { // Default implementation of UNIX time of the current UTC time TimeSpan ts = dt.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0, 0); return Convert.ToInt64(ts.TotalSeconds).ToString(); } //调用方式: string stamp = GenerateTimeStamp(DateTime.Now); C#将时间戳转换成日期时间类型: public DateTime GetDateFromTimeStamp(string now) {