欢迎来到天天文库
浏览记录
ID:23188110
大小:15.05 KB
页数:9页
时间:2018-11-05
《2018年某大学生程序员实习报告(JS部分)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、2018年某大学生程序员实习报告(JS部分)JS部分:一、正则表达式正则表达式由两个正斜杠/表达式/包裹起来;^:匹配字符串的开头;$:匹配字符串的结尾;+:匹配+前面一个或多个的子表达式;*:匹配*前面零个或多个的子表达式;{n}:限定n字符;{n,}:限定n个以上的字符;{n,m}:限定n个至m个的字符;?:匹配前面的子表达式零次或一次d:匹配数字;[0-9]:匹配数字;[a-z]:匹配小写字母;[A-Z]:匹配大写字母;[a-zA-Z]:匹配所有英文字母;w:匹配字母、数字、下划线。等价于'[A-Za-z0-9_]
2、';W:匹配非字母、数字、下划线。等价于'[^A-Za-z0-9_]'。更多请看:二、适配方案:在移动端上,每个手机的分辨率都不同,以前都是使用css媒体查询media,但现在再使用媒体查询已经太老旧了,不仅代码冗余还消耗性能;而用js进行移动端的适配,是个很好的选择。现在较流行的适配方案有网易的rem.js和淘宝的flexible.js。其实对于不同的适配方案,rem与px的换算也是不同的。1)rem.js详情请看:E:/文档/common/index.html。2)flexible.jsFlexible.js是阿里巴巴
3、团队写的终端适配解决方案。flexible.js的用法非常的简单,在页面的
4、device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no"/>这是一个使页面自适应设备的标签,详情请看:。这两篇博文对viewPort的讲解很详细,值得一看。三、框架:1.Vue:Vue-cli打包有一个坑,里面的css压缩打包会把css前缀给去掉,导致打包后的文件跟开发环境不同,且会把公共部分重复打包,使得打包过后的css文件非常大。1)组件化:当项目页面中出现多处相同的样式和功能的时候,应把这个重复的部分封装成一个组件出来,并暴露一些属性给外部使得
5、组件可以被定制,方便后续的使用。2)Ajax和axios:ajax是jq的一个异步请求的方法,基本用法为:$.ajax({type:'POST',//请求类型url:serverUrl[url],//请求接口地址dataType:"json",//参数类型data:data,//参数async:true,//是否为异步请求beforeSend:function(request){//发送请求前执行的方法......},success:function(msg){//请求成功后执行的方法successFun(msg)},Err
6、or{//请求失败后执行的方法}Axios是一个基于promise的HTTP库,用法相对于ajax来说较为简洁。特征:从浏览器中创建XMLHttpRequest从node.js发出http请求支持PromiseAPI拦截请求和响应转换请求和响应数据取消请求自动转换JSON数据客户端支持防止CSRF/XSRF基本用法:axios.post(api,{//api:请求的接口,{请求的参数}firstName:'Fred',lastName:'Flintstone'}).then(function(response){//请求后执
7、行的方法console.log(response);}).catch(function(error){//异常处理console.log(error);});3)Vue中的Prop:Vue中的数据都是只作用于当前组件的,要想在子组件和父组件中传递数据,就得使用prop和emit。Prop是父组件把数据暴露给子组件的一个属性,使用方法为:Props:{Foo:{Type:StringNumberBooleanFunctionObjectArraySymbol}}在组件中绑定原生方法应加上.native;Emit是组件向外传递数
8、据的一个属性。4)Vuex:目前对vuex还没有太深的理解,只知道大概是保存页面状态的一个东西。详情请看:。四、时间戳在项目中出现过因为css和js文件缓存出现样式混乱的问题,主要出现在手机使用过老版页面,在更新后进入新版页面会出现样式重叠混乱。这时候应该在引入外部文件的和<
此文档下载收益归作者所有