4000 JavaScript学习笔记
2017-10-24 17:52
183 查看
1. 数据类型和变量
1.1 等式
在下面的示例中,JavaScript 传入字符串”1”,并将其转换为 true,然后与布尔值 true 比较。"1" == true
返回:true
当你使用 == 或 != 运算符时,JavaScript 首先将每个值转换为相同类型(如果不是相同类型的话);因此叫做“转型”!这通常不是你希望出现的行为,比较值是否相等时使用 == 和 != 运算符并不是很好的做法。
绝对相等
相反,在 JavaScript 中,最好使用绝对相等的方法看看数字、字符串或布尔型数值等在类型和值方面是否完全相同,而不用首先转换类型。要进行绝对比较,只需在 == 和 != 运算符的末尾添加一个 =。
"1" === 1
返回:false
返回 false,因为字符串 “1” 和数字 1 并非具有相同的类型和值。
练习:看看哪些表达式为 true。
1. "3">1 2. 3!=3 3. true>=0 4. 1!==false 5. "false"===0 6. 3===3
答案: 1,3,4,6
解析:
在”===”和”!==”符号中,由字符类型和数值来判断,有一个不相等即不等
在”>”、”<”等运算符中,先将其转化为数字,在进行比较
2. 数组
2.1 数组的属性和方法
Splicesplice()是另一个很有用的方法,可以让你向数组的任意位置添加元素和移除任意位置的元素。
示例:
var donuts = ["glazed", "chocolate frosted", "Boston creme", "glazed cruller"]; donuts.splice(1, 1, "chocolate cruller", "creme de leche"); /* removes "chocolate frosted" at index 1 and adds "chocolate cruller" and "creme de leche" starting at index 1 */
返回:[“chocolate frosted”]
donuts 数组:[“glazed”, “chocolate cruller”, “creme de leche”, “Boston creme”, “glazed cruller”]
第一个参数表示你要从哪个索引开始更改数组,第二个参数表示你要删除的元素数量,剩下的参数表示你要添加的元素。
语法:arrayObject.splice(index,howmany,item1,…..,itemX)
附上练习题:
第一次接触到index是负数的用法,觉得这道题解释的很清楚~
shift() will remove the first element from an array.
slice()
slice()方法可从已有的数组中返回选定的元素。
语法:
arrayObject.slice(start,end)
返回值
返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
说明
请注意,该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。
提示和注释
注释:您可使用负值从数组的尾部选取元素。
如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。
join()
join()方法用于把数组中的所有元素放入一个字符串。
元素是通过指定的分隔符进行分隔的。
语法:
arrayObject.join(separator)
返回值:
返回一个字符串。该字符串是通过把 arrayObject 的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入 separator 字符串而生成的。
2.1 数组forEach循环
语法:
array.forEach(function(value,index,array){ // function });
参数:value数组中的当前项, index当前项的索引, array原始数组;
数组中有几项,那么传递进去的匿名回调函数就需要执行几次;
理论上这个方法是没有返回值的,仅仅是遍历数组中的每一项,不对原来数组进行修改;但是可以自己通过数组的索引来修改原来的数组;
练习:使用数组的 forEach() 方法 循环访问以下数组,如果某个值可以被 3 整除,则向这些值加 100。向控制台中输出 test 数组。
这里会发现写出的代码没有返回值,所以不能修改原数组,输出数组时会输出原数组。所以这里要使用索引修改数组。
代码:
var test = [12, 929, 11, 3, 199, 1000, 7, 1, 24, 37, 4, 19, 300, 3775, 299, 36, 209, 148, 169, 299, 6, 109, 20, 58, 139, 59, 3, 1, 139 ]; // Write your code here test.forEach( function(num,i,test) { if(test[i]%3===0){ test[i]+=100; } } ); console.log(test);
2.2 数组map循环
map和forEach的不同在于map有返回值,并且需要将数组赋予另一个新的数组(相当于复制),原数组值不发生改变。var newarrays = myarrays.map(function(array){ //function return array; })
P.S. 附上两个方法
1.toFixed() 方法
toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。
NumberObject.toFixed(num)
但是这样处理以后该方法会返回一个字符串,保持了数字的“修复后”格式。所以,如果你想将字符串转换回数字,可以转型或转换回数字:
2.Number(“1”)
3.条件语句
这里有一个很有意思的判断。“null” 是个为真的字符串。null 值本身为假。JavaScript 中的假值如下所示:
false null undefined 0 NaN ""
附上这道神题..
相关文章推荐
- MAVEN入门指南——学习笔记 4000
- JavaScript学习笔记 1-入门
- js循环数据放入同一数组 (个人 4000 菜鸟笔记)
- 4000 【SJTUOJ笔记】P1118 Travel
- JavaScript学习笔记(二)
- 天融信防火墙NGFW4000-UF防火墙启用PPTP笔记
- Javascript学习笔记之函数篇(四):arguments 对象
- Javascript学习笔记之超时调用和间歇调用
- Javascript学习笔记-01
- 正则表达 4000 式学习笔记
- JavaScript学习笔记---进阶
- JavaScript学习笔记(二)------摘自w3school
- JavaScript学习笔记 第四记
- python3 学习笔记 4000
- 4000 2014 ECCV 行人检测文献综述 学习笔记
- Javascript学习笔记5——类和对象
- 小白Java学习笔记(源自itcast-刘意java视频) 4000
- javascript学习笔记--迭代函数
- Gvim开发环境配置笔记--Win 4000 dows篇
- JavaScript学习笔记-入门篇