首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    60行代码实现简单模板语法

    不久前看过一篇不错的文章,作者用了15行代码就实现了一个简单的模板语法,我觉得很有趣,建议在阅读本文之前先看一下这个,本文不会讲解一些细节实现,这里是传送门:只有20行的Javascript模板引擎 这个模板语法实现的核心点是利用正则表达式来匹配到模板语法里面的变量和JS语句,遇到变量就将匹配到的字符串 push 到一个数组中,遇到 JS 语句就执行,最后再把数组中的字符串 join 起来,用 Function 来解析执行这串字符串,最终将执行后的结果放到指定 DOM 节点的innerHTML 里面。 但是这个模板语法还是有很多不足,比如不支持取余运算,不支持自定义模板语法,也不支持if、for、switch 之外的JS语句,缺少 HTML 实体编码。 恰好我这阵子也在看 underscore 源码,于是就参考了一下 underscore 中 template 方法的实现。 这个是我参考 template 后实现的模板,一共只有60行代码。

    02

    BOM与RegExp

    BOM     定义:Browser Object Model,定义了操作浏览器的接口     BOM对象: Window, History,Navigator,Screen, Location等     由于浏览器厂商的不同,Bom对象的兼容性极低。一般情况下,我只用其中的部分功能。 Navigator对象     http:// www .w3school .com. cn/ jsref/dom_obj_navigator.asp Location对象     location.hash     “#”后是对浏览器操作的,对服务器无效,实际发出的请求也不包含”#”后面的部分     “#”被算作历史记录 - 转义字符 “\” - 多行字符串 - 字符串换行符\n RegExp     定义:一个新的 RegExp 对象,具有指定的模式和标志。如果参数pattern是正则表达式而     不是字符串,那么 RegExp() 构造函数将用与指定的 RegExp 相同的模式和标志创建一个新     的 RegExp 对象。     直接量     new RegExp();     个人推荐用直接量 Doctype 1.渲染模式         在多年以前(IE6诞生以前),各浏览器都处于各自比较封闭的发展中(基本没有兼容性可谈)。     随着WEB的发展,兼容性问题的解决越来越显得迫切,随即,各浏览器厂商发布了按照标准模式(遵循     各厂商制定的统一标准)工作的浏览器,比如IE6就是其中之一。但是考虑到以前建设的网站并不支持     标准模式,所以各浏览器在加入标准模式的同时也保留了混杂模式(即以前那种未按照统一标准工作     的模式,也叫怪异模式)。 三种标准模式的写法     1.<!DOCTYPE html>     2.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"        "http://www.w3.org/TR/html4/strict.dtd">     3.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 待穿插知识点     <label>   for 属性  —  > js中表示htmlFor     属性映射 HTML属性 映射到Element属性     img图片预加载     byClassName 自己定义的写法还没写呢     Math.random() 和彩票程序  0-36的随机数     文档碎片     cdn     断点调试     typeof (new Array).__proto__.constructor();

    02

    java学习与应用(4.2)--JavaScript、bootstrap

    JavaScript,弱类型脚本语言,增强交互和用户体验提高效率等。JavaScript=ECMAScript+JavaScript特有的内容(BOM对象+DOM对象) ECMAScript:与html结合:内部JS(script标签定义,在html文档内部,按位置先后执行),外部JS(script标签引入src元素), 注释:当行//,多行/**/,数据类型:原始数据类型(基本,number[整数,小数,NaN not a number],string,boolean,null,undefined),引用数据类型(对象) 变量,var定义,开辟空间不定义类型。赋值可改变类型。document.write输出,添加标签
    字符串换行。typeof(变量)关键字,打印数据类型(null是一个object的bug)。 运算符,一元运算符:++,--,+-(正号,负号[可以将其他类型转number,无法转换为NaN]),算数运算符:+-*/%,赋值运算符=,+=,-=,比较运算符:>,>=,<,<=,==,!=,类型不同则转换类型比较,===(不转换类型比较)。

    01
    领券