JavaScript学习笔记

来源:互联网 发布:网络炒作kim 编辑:程序博客网 时间:2024/06/12 18:45

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 数组的属性和方法

  • Splice
    splice() 是另一个很有用的方法,可以让你向数组的任意位置添加元素和移除任意位置的元素。

示例:

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 heretest.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 中的假值如下所示:

falsenullundefined0NaN""

附上这道神题..
这里写图片描述

原创粉丝点击