# varJS **Repository Path**: mtshen/varJS ## Basic Information - **Project Name**: varJS - **Description**: varJS 是对变量存储进行了优化,避免全局污染的轻量级javascript库, 目前已经不再维护 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-11-20 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # varJS ## VarJS 0.1 beta版本 - 提供存取变量的功能,解决全局污染问题 - 支持>运算进行存取变量 - 支持存取常量 - 加入sizzleJS,使得VarJS能以css选择器的方式获取页面元素 - 加入了整数与小数的随机,对象合并,对象复制,字符串转DOM,变量检查等功能 - 使Array 的 forEach,filter,map,some,every,indexOf,lastIndexOf,reduce,reduceRight函数支持 IE6+ - 提供了一个模板引擎的雏形 - 具体使用方式参照说明 ## 0.2 beta版本 可能出现的新功能 - 以[data=xxx]的方式获取变量 - 对String原生对象的新方法兼容 - 模板引擎优化 - 优化存取变量算法 ## 建议 - 在使用VarJS的时候出现的任何问题和建议都可以提交到 mtshen1997@sina.com - 该项目目前处于开发前期,任何问题和意见都会在第一时间进行反馈 ### 版本 #### 0.0.0.1 提供存取变量的功能,解决全局污染问题 #### 0.0.0.2 对全局变量的存取方式进行了修改 #### 0.0.0.3 支持>运算进行存取变量,增加了judge.js #### 0.0.0.4 judge.js 与 global.JS合并,并增加了一些新的方法和预定义属性 #### 0.0.0.5 增加了几个新的方法,增加了sizzle.js,能够以Var.element()来获取元素 #### 0.0.0.6 取消了一些预定义属性和方法,定义常量不再支持IE8- #### 0.0.0.7 增加了2个常用方法 #### 0.0.1.0 支持使Array 的 forEach,filter,map,some,every,indexOf,lastIndexOf,reduce,reduceRight函数支持IE6 + ### 说明 ###### varJS 采用grunt编译 ###### varJS 将来主要提供对变量的操作,和提供对模板操作的功能 ### 模块 ###### 1. global.JS ###### 2. template.JS ###### 3. expand.JS ###### 4. is.JS ###### 5. html.JS ###### 6. sizzle.JS --- ### 快速开始 > 1.1创建一个自己的分支 ``` var main = new Var; ``` > 1.2创建一个变量 ``` main.var('a',100); ``` > 1.3获取一个变量 ``` main.var('a'); // 100 ``` > 2.1varJS支持创建一个常量 常量通常不能被改变,一旦创建将始终保持初始的值 ``` var main = new Var; min.const('a',100); min.const('a'); // 100 min.const('a',200); min.const('a'); // 100 ``` > 3.1 varJS支持调用其他实例化数据,但是创建分支的时候要定义一个名字 ``` var main = new Var('main'); var sw = new Var('sw'); main.b = 100; sw.varData('main','b') // 100; ``` --- ### 更多API #### API 目录 - 0.1 var - 0.2 const - 0.3 addMethods - 0.4 check - 0.5 merge - 0.7 debugge - 0.8 element - 0.9 getTemplate - 1.0 html - 1.1 init - 1.2 is - 1.3 isArray - 1.4 isDOM - 1.5 isFormElement - 1.6 isFunction - 1.7 isLikeArray - 1.8 isNumber - 1.9 isObject - 2.0 isString - 2.1 parseJson - 2.2 random - 2.3 setTemplate - 2.4 copy ##### 0.3 addMethods 为所有的var示例加入一个方法 ``` var main = new Var('main'); main.addMethods('fn',function(){ console.log(0); }) main.fn() // 0; ``` ##### 0.4 check 比较2个值的内容是否相等 第三个参数设置为true则判断全等 ``` main.check(1,1); // true main.check(1,'1'); // false main.check(1,'1',true); // true ``` ##### 0.5 merge 合并对象,最后一个值可以传入一个数值,来确定合并几层数据 ``` main.merge({a:1,b:2},{a:2}); // {a:2,b:2} ``` ##### 0.7 debugge 调试数据,将数据直接复制给window.$var; 可以在控制台进行查看 ``` var main = new Var('main'); main.debugge(); console.log($var); ``` ##### 0.8 element 以css选择器的方式获取一个页面元素 ``` var main = new Var; main.element('div'); ``` ##### 0.9 getTemplate 获取渲染后的html ``` // 可以使用 {} 来直接调用已经设置的模板 main.setTemplate('abc','
{{id}}
'); // 设置一个模板 main.getTemplate('{abc}',{id:'abc'}); //
abc
main.getTemplate('
{{id}}
',{id:'abc'}); //
abc
``` ##### 1.0 html 返回一个dom元素 ``` main.html('
'); //
``` ##### 1.1 init 初始化函数 ``` main.init('a',function(){ // 设置初始化函数 console.log(0); }) main.init(function(){ // 设置一个匿名的初始化函数 console.log(0); }) main.init() // 调用初始化函数 main.init('a') // 单独调用一个初始化函数 ``` ##### 1.2 is 获取一个数据的类型 ``` main.is('abc') // string ``` ##### 1.3 isArray 判断类型是否是一个数组 ``` main.isArray([]) // true ``` ##### 1.4 isDom 判断类型是否是dom ``` main.isDom('abc') // false ``` ##### 1.5 isFormElement 判断类型是否是一个表单元素 ``` var input = main.html(''); main.isFormElement(input) // true ``` ##### 1.6 isFunction 判断类型是否是function ``` main.isFunction(function(){}) // true ``` ##### 1.7 isLikeArray 判断类型是否是一个可遍历对象 ``` main.isLikeArray({0:'',1:'',length:1}) // true ``` ##### 1.8 isNumber 判断类型是否是数字 ``` main.isNumber(1) // true ``` ##### 1.9 isObject 判断类型是否是对象 ``` main.isObject({}) // true ``` ##### 2.0 isString 判断类型是否是字符串 ``` main.isString('abc') // true ``` ##### 2.1 parseJson 将一个JSON转换成一个对象 / 不同的是转换一个对象不会报错 ``` main.parseJson('{"a" : 1}') // {a:1} main.parseJson({a:1}) // {a:1} ``` ##### 2.2 random 随机数 ``` main.random() // 随机 1~100 整数 main.random(1,50) // 随机 1~50 整数 main.random(1.01,2) // 随机 1.01~2.00 之间的数 ``` ##### 2.3 setTemplate 设置一个模板 ``` // 可以使用 {} 来直接调用已经设置的模板 main.setTemplate('abc','
{{id}}
'); // 设置一个模板 main.getTemplate('{abc}',{id:'abc'}); //
abc
``` ##### 2.4 copy 深拷贝 ``` var obj = {a : 100}; var b = main.copy(obj) // 能够完全拷贝一个任意类型数据 b.a = 200; b; // {a : 200} obj; // {a : 100} ```