🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 变量的声明 JavaScript允许程序员直接对变量赋值而无需事先声明。这在许多程序设计语言中是不允许的。虽然JavaScript没有强制要求程序员必须提前声明变量,但提前声明变量是一种良好的编程习惯。下面的语句对变量foo和bar做出了声明: ``` var foo; var bar; ``` # 变量的类型 ## 字符串 字符串由零个或多个字符构成。字符包括(但不限于)字母、数字、标点符号和空格。字符串必须包在引号里,单引号或双引号都可以,并没有什么区别。作为一个好的编程习惯,不管选择用双引号还是单引号,请在整个脚本中保持一致。 ``` var name = 'Zhang'; var username = "Li Ren"; ``` ## 数值 Javascript不区分整数(integer)和浮点数(floating-pointnumber)。 var age = 41; var temperature = 36.7; ## 布尔值 布尔数据只有两个可选值——true或false。 ``` var switch = true; ``` ## 数组 以上介绍的都是标量(scalar)。数组是指用一个变量表示一个值的集合,集合中的每个值都是这个数组的一个元素(element)。 一种创建数组的方式: ``` //var arr = Array(2); //可以指定数组的长度,但是并没有什么意义。 var arr = []; arr[0] = 'good'; arr[1] = 3.1; alert(arr[1]) ``` 还可以这样创建: ``` var arr = ['good', 3.1]; ``` ## 对象 对象的声明方式有如下两种。 ``` var arr = Object(); var arr = {}; arr = {'name': 'Pat', 'address': 'China'}; ``` ## 实例 比较两个字符串的相似度,忽略字符的顺序,并按相似度排序。 ``` /* 比较长字符串和短字符串的相似度 * 忽略字符的顺序,利用hash存储并排序 */ function sameValue(a, b) { let hit = 0; if (b.length > a.length) { c = a; a = b; b = c; } l = a.length; m = b.length; for (let i = 0; i < l; i++) { for (let j = 0; j < m; j++) { if (a[i] === b[j]) { ++hit; break; } } } return parseInt((1 - hit / l) * 100); //返回值为0-100,0为相同,100为完全不同 } var arr = []; for (let i = 0; i < 1000; ++i) { let a = '' + Math.random(); //生成随机字符串 let b = '' + Math.random(); //生成随机字符串 let hit = sameValue(a, b); let realHit = hit; while (hit in arr) ++hit; arr[hit] = realHit; //此行为debug,应该替换成真实的值 } console.log(arr); ```