1. js 小案例
游戏如下图:
上面代码是源码中的一句话:
Math.floor(Math.random() * 100);
这句话是生成 0 -99 的随机数,其中 Math.random()
是生成 0 - 1 之间的十进制随机数,如 0.56987。Math.floor
是舍弃小数位局部,因而在舍弃之前将 Math.random()
的后果 *100,就生成了 0 -99 的随机数。
源码可参考:https://github.com/unique008/…
遇到的问题:
js 谬误形容:Cannot read property ‘value’ of null
解决方案:
语法错误 :查看了一遍,原来是把.value
后面的名字写错了,这个是很不容易发现的,写代码肯定要仔细一点哦。只有相熟语言并理解出错的含意,你就能很快顺利修复他们。
eg:guessSubmit.addeventListener
不是一个函数,这就是一个语法错误,js 是辨别大小写的,所以任何轻微的不同都会出错。
解决方案:addeventListener
改成 addEventListener
即可解决。
还有另一种谬误是 逻辑谬误,不存在语法错误,然而后果跟你预期的并不一样,比语法错误更难修复。
2. js 中比拟罕用的字符串办法
- 变量
变量并不是数值自身,能够看做存储数值的一个容器.
变量名的命名规定:小写驼峰命名法。
- 与其余编程语言不一样,在 js 中不须要申明变量的类型。
eg:
Number 类型:let myAge = 18;
String 类型:let myHometown = 'linfen';
Boolean 类型:let isVisitied = true;
Array 类型:let amyArr = ['我和','我的','他乡'];
或 let amyArr = [1,2,2];
Object 类型:let kity = {name:'xiaodeng',hobby:'sing'};
,能够用kity.name
调用。
注:
===
和!==
是严格相等,包含数据类型;==
和!=
只是测试值相等或者不等,数据类型可能不同。
倡议应用严格版本,能够有更少谬误。
- prompt 函数
let name = prompt('What is your name?');
这句话是用的 window.prompt()
函数,它要求用户通过一个弹出对话框答复一个问题,而后将你的答案赋给变量name
。
- indexOf 函数
let brow = 'Beata hello';
brow.indexOf('ata'); // 返回 2,找不到则返回 -1
返回子字符串首字符在主串中的索引值。
- slice 函数
let brow = 'Beata hello';
brow.slice(0,3); // 返回 "Bea"
brow.slice(2); // 返回 "ata hello"
slice
用来提取字符串中的字符,参数 1 是开始提取的地位,参数 2 是提取的字符串长度。,参数 2 是可选的,若没有参数 2,返回字符串中所剩的所有字符。
- toLowerCase 函数
将所有字符转成小写;
- toUpperCase 函数
将所有字符转成大写;
- replace 函数
替换,参数 1 是被替换下的子串,参数 2 是要被替换上的子串。
3. js 中数组的罕用办法
- 字符串转数组
let myData = 'Manchester,London,Liverpool,Birmingham,Leeds,Carlisle';
let myArray = myData.split(',');
myArray 后果如下:
- 数组转字符串:
1 let myNewString = myArray.join(',');
myNewString 后果如下,join
能够指定不同的分隔符。
2 let myNewString1 = myArray.toString();
myNewString1 后果如下,toString
更简略一些,不须要参数。
- 插入和删除
push()
:增加一个 / 多个到数组的开端,返回数组的新长度存储在新变量中;【尾插】
pop()
: 删除数组中最初一个元素,返回被删除的元素。【尾删】
下面两个办法 不扭转原数组。
上面两个办法与下面两个性能一样,然而插入和删除地位不一样,返回的值也不一样。
unshift()
:在第一个地位插入元素,返回插入之后的元素【头插】;shift()
:在第一个地位删除元素,返回删除之后的元素【头删】;
toFixed()
办法可把 Number 四舍五入为指定小数位数的数字。appendChild()
向节点增加最初一个子节点。