小结之倪老师
来源:互联网 发布:网络音柱怎么连接 编辑:程序博客网 时间:2024/04/30 12:25
关于正则的那些事
1.为字符串实现一个render方法,实现下面的变量替换功能
`var greeting = ‘My name is
var employee = {
name: ‘小明’,
age : 11,
job :{
jobName : ‘designer’,
jobLevel: ‘senior’
}
}
String.prototype.render = function(obj){
var result = this.replace(/${\w+.*\w+}/g, function(p1){
var ss = p1.slice(2, p1.length-1);
if(ss.indexOf(".") == -1){ return obj[ss]; }else{ var arr = ss.split("."); return obj[arr[0]][arr[1]]; }});return result;
}
var result = greeting.render(employee);
console.log(result);
//My name is 小明, age 11, i am a designer`
- 物品价格 :’100 100 99 99 100 99 101’,求:a.去除重复, b.保留重复元素的最后一个
`var oldStr = ‘99 99 99 100 100 100 101 101 102 102 103’;
//a-b <= 0时,不会触发元素换位
var arr = oldStr.split(” “).sort(function(a, b){return a-b;});
var newStr = arr.join(” “);//99 99 99 100 100 100 101
var startIndex = 0;
var indexes = [];
newStr.replace(/(\d+\s*)\1*/g,function(p1, p2){
var ind = startIndex + p1.length/p2.length;
startIndex = ind;indexes.push(ind - 1);
});
var result = [];
for(var i=0;i
第一次输入:产品数量 客户数量第二次输入:和客户数量相等的报价要求计算最优价格并返回[5, 4][2,10,8,7]2*4 = 8;10*1 = 10;8*2 = 167*3 = 21function Salor(){}Salor.prototype.setNums = function(num, cnum){ this.num = num; this.cnum = cnum;}Salor.prototype.setPrices = function(prices){ this.prices = prices;}Salor.prototype.getPrice = function(){ var me = this; if(this.cnum != this.prices.length){ alert("报价数量和客户数量不相等,请检查!");return; } //价格排序 this.prices = this.prices.sort(function(a,b){ return a-b }); var maxAmount = -1; var pri = -1; for(var i=0;i<this.prices.length;i++){ var num = (this.prices.length - i); if(num > me.num){ num = me.num; } var amount = this.prices[i] * num; if(maxAmount < amount){ maxAmount = amount; pri = this.prices[i]; } } return pri;}
关于项目
require js的优点
(1)实现js文件的异步加载,避免网页失去响应;
(2)管理模块之间的依赖性,便于代码的编写和维护。
1. 是采用requirejs的模块化编程;
AMD编程方式:
project:common modules和resource;
//使用require.config()方法,我们可以对模块的加载行为进行自定义。require.config()就写在主模块(index.js)的头部。参数就是一个对象,这个对象的paths属性指定各个模块的加载路径。因为三个模块与index.js不在同一目录,需要通过baseUrl来改变基目录。requirejs.config({ baseUrl : '/xijing/project/modules/schedule/', paths : { text:'../../common/lib/requirejs/text', render:'js/render', datasource:'js/datasource' }});/** * Amd程序主函数;require.js加载的模块,采用AMD规范。具体来说,就是模块必须采用特定的define()函数来定义。 */ //加载模块require(['render'], function(RenderService){ RenderService.init();});
<script type="text/javascript" src="/xijing/project/common/lib/requirejs/require-min.js" data-main="/xijing/project/modules/schedule/index.js"></script>
data-main属性的作用是,指定网页程序的主模块。在上例中,就是js目录下面的main.js,这个文件会第一个被require.js加载
2.当点击超链接不希望其跳转时
<a href="javascript:void(0)"></a>
3.样式定义尽量公用且易读,比如pad-r-5{padding-right:5px;}尽量复用;
line-h前缀代表样式内部声明height和line-height,修饰单行文本;
line-只声明line-height,其值为百分数,为默认的百分数,修饰多行文本;
.line-h24{line-height: 24px;}.lineh27{ line-height: 27px; height: 27px;}
4.文本过长问题
单行文本:
.text-ellipsis{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
多行文本:
新建readmore.js readmore是一个依赖于jquery的插件类库,加载放在jquery的后面;
$(".dept-desc").readmore({ //声明文字个数 substr_len: 380, //更多连接 more_link: '<a class="read-more pad-l-10" href="javascript:void(0)">展开>></a>' });
5.动态渲染(mustache js)
引入text.js
(1)依赖于require.js的一个模块代码,需要由require js引入当前环境
(2)当我们需要在某个模块中引入非js文件,需要在模定义的依赖部分添加‘text!paths(模板路径名)/files’;
mustache js 用于动态解析,然后给出计算后的HTML代码
模板html文件
<!-- 声明html代码片段的编码方式为UTF-8,这样浏览器加载这个html片段时,不会出现乱码问题 --><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">{{#datas}}<li class="mar-tb-20 clear"> <div class="dept-name float-l">{{name}}</div> <div class="float-l"> <ul class="clear"> {{#depts}} <li class="float-l mar-r-20 mar-b-14">{{name}}</li> {{/depts}} </ul> </div></li>{{/datas}}
模板中的{{data}}可以是属性值,字符串或者函数
js文件
define(['datasource', 'text!templates/departments.html'],function(dataSource, deptTemp)
var depts = dataSource.getDepts();//利用mustache动态var dom = Mustache.render(deptTemp, {datas: depts});$(".dept-list > ul").append(dom);
- 小结之倪老师
- 黑马程序员_看毕老师视频第一天的小结之环境变量的设置
- 大学老师与中小学老师之比较
- Linux下V4L2编程小结--吴老师
- Linux下V4L2编程小结--吴老师
- 真心告别之老师也无柰
- 《编程之美》 - 献给老师
- FZU1059 之 老师的烦恼
- 创新课程陈浩老师上课后的小结
- 牛腩老师讲B/S开发小结 触发器 主键 外键
- 侯捷老师的虚函数和多态小结
- 小学生调息女同学之老师语录
- 良师益友之--开复老师二三事
- 是什么让袁萌老师怒而斥之?
- 章立民老师的学习之路
- 老师的心理素质为何如此之好
- JAVA自学之路[马士兵老师]
- 孙鑫老师的程序员之家
- This Activity already has an action bar supplied by the window decor.
- 内部排序算法4(归并排序)
- 如何在VS工具箱中添加DevExpress控件
- myeclipse解决内存溢出问题 java.lang.OutOfMemoryError: PermGen space
- 如何用敏捷方法做测试?
- 小结之倪老师
- 翻转设计模式系列——第三部分--设计模式(2)--结构型模式大比拼
- 剑指offer 44. 扑克牌的顺子
- Ubuntu树莓派交叉编译qt5.8 +mysql数据库驱动文件.so
- 报头压缩-ROHC数据结构/参数设置
- SVN分支创建,合并,多分支并行
- Spring框架的两个简化XML配置文件的p-namespace和c-namespace
- 如何实现多表列合并
- 5.2