• JavaScript的学习笔记


    赋值过程是从右到左进行的。所有 = 操作符右边的值都会被赋到左边的变量。

    myVar = 5;
    myNum = myVar;

    数值 5 被赋给变量 myVar 中, 然后变量 myVar 又赋给变量 myNum ,这样子 myNum 变量中的值也是 5 了。

    通常地我们会在initialize开始声明变量的时候就会给变量赋一个初始值。

    var myVar = 0;

    创建一个名为 myVar 的变量并指定一个初始值 0

    当未声明时,返回的是undefined;

    使用 驼峰命名法 来书写一个 Javascript 变量,在 驼峰命名法 中,变量名的第一个单词的首写字母小写,后面的单词的第一个字母大写。

    举个栗子:

    var someVariable;
    var anotherVariableName;
    var thisVariableNameIsTooLong;
    JavaScript 中使用 - 来做减法运算。+-*/

    使用++,可以我们很容易地对变量进行自增或者+1运算。

    i++;

    等效于

    i = i + 1;

    提示
    i++;这种写法,省去了书写=符号的必要。

    使用自减符号 -- ,你可以很方便地对一个变量执行 自减 或者减一操作。

    i--;

    等效于

    i = i - 1;

     

    在数学中,看一个数是奇数还是偶数,只需要看这个数除以2得到的余数是0还是1。

    17 % 2 = 1 (17 is 奇数)
    48 % 2 = 0 (48 is 偶数)

    在编程当中,通常通过赋值来修改变量的内容。请记住,计算先=右边,然后把计算出来的结果赋给左边。

    myVar = myVar + 5;

    以上是最常见的运算赋值语句,先运算,再赋值。

    还有一类操作符是一步到位既做运算也赋值的。

    操作这类符的其中一种就是+=运算符。

    myVar += 5;把也是数值5加到变量myVar上。

    var a = 3;
    var b = 17;
    var c = 12;

    // 请只修改这条注释以下的代码

    a += 12;
    b += 9;
    c +=7;

    a-=1;和减是一样的   

    字符串的拼接

    在 JavaScript 中,当 + 操作符与 字符串 一起使用的时候,它被称作 连接 操作符。你可以通过和其他字符串连接 来创建一个新的字符串。

    举个例子

    'My name is Alan,' + ' I concatenate.'

    注意
    当心空格。连接操作不会添加两个字符串之外的空格,所以想加上空格的话,你需要自己在字符串里面添加。

    总结 字符串的拼接和赋值,计算赋值需要学习。

    你可以通过在字符串变量或字符串后面写上 .length 来获得字符串变量 字符串 值的长度。

    "Alan Peter".length; // 10

    理解字符串的不可变性!当你搞懂不可变性后immutable.js对于你就是小菜一碟了。

    在 JavaScript 中,字符串 的值是 不可变的,这意味着一旦字符串被创建就不能被改变。

    例如,下面的代码:

    var myStr = "Bob";
    myStr[0] = "J";

    是不会把变量 myStr 的值改变成 "Job" 的,因为变量 myStr 是不可变的。注意,这 并不 意味着 myStr 永远不能被改变,只是字符串字面量 string literal 的各个字符不能被改变。改变 myStr 中的唯一方法是重新给它赋一个值,就像这样:

    var myStr = "Bob";
    myStr = "Job"; 重新赋值

    我们可以像操作字符串一样通过数组索引[index]来访问数组中的数据。

    数组索引的使用与字符串索引一样,不同的是,通过字符串的索引得到的是一个字符,通过数组索引得到的是一个条目。与字符串类似,数组也是 基于零 的索引,因此数组的第一个元素的索引是 0

    例如

    var array = [1,2,3];
    array[0]; // 等于 1
    var data = array[1]; // 等于 2

    与字符串的数据不可变不同,数组的数据是可变的,并且可以自由地改变。

    例如

    var ourArray = [3,2,1];
    ourArray[0] = 1; // ourArray等于 [1,2,1]
    .push() 接受把一个或多个参数,并把它“推”入到数组的末尾。
    var arr = [1,2,3];
    arr.push(4);
    // 现在arr的值为 [1,2,3,4]

    改变数组中数据的另一种方法是用 .pop() 函数。

    .pop() 函数用来“抛出”一个数组末尾的值。我们可以把这个“抛出”的值赋给一个变量存储起来。

    数组中任何类型的条目(数值,字符串,甚至是数组)可以被“抛出来” 。

    var oneDown = [1, 4, 6].pop();
    现在 oneDown 的值为 6 ,数组变成了 [1, 4]

    这就是 .shift() 的用武之地。它的工作原理就像 .pop(),但它移除的是第一个元素,而不是最后一个。

    你不仅可以 shift(移出)数组中的第一个元素,你也可以 unshift(移入)一个元素到数组的头部。

    .unshift() 函数用起来就像 .push() 函数一样, 但不是在数组的末尾添加元素,而是在数组的头部添加元素。

     

    函数的参数parameters在函数中充当占位符(也叫形参)的作用,参数可以为一个或多个。调用一个函数时所传入的参数为实参,实参决定着形参真正的值。简单理解:形参即形式、实参即内容。

    这是带有两个参数的函数, param1param2

    function testFun(param1, param2) {
    console.log(param1, param2);
    }

    接着我们调用 testFun

    testFun("Hello", "World");

    我们传递了两个参数, "Hello""World"。在函数内部,param1 等于“Hello”,param2 等于“World”。请注意,testFun 函数可以多次调用,每次调用时传递的参数会决定形参的实际值。

    在 JavaScript 中, 作用域 涉及到变量的作用范围。在函数外定义的变量具有 全局 作用域。这意味着,具有全局作用域的变量可以在代码的任何地方被调用。

    这些没有使用var关键字定义的变量,会被自动创建在全局作用域中,形成全局变量。当在代码其他地方无意间定义了一个变量,刚好变量名与全局变量相同,这时会产生意想不到的后果。因此你应该总是使用var关键字来声明你的变量。

    不相等运算符(!=)与相等运算符是相反的。这意味着不相等运算符中,如果“不为真”并且返回 false 的地方,在相等运算符中会返回true反之亦然。与相等运算符类似,不相等运算符在比较的时候也会转换值的数据类型。

    例如

    1 != 2 // true
    1 != "1" // false
    1 != '1' // false
    1 != true // false
    0 != false // false

    严格不相等运算符(!==)与全等运算符是相反的。这意味着严格不相等并返回 false 的地方,用严格相等运算符会返回 true反之亦然。严格相等运算符不会转换值的数据类型。

    例如

    3 !== 3 // false
    3 !== '3' // true
    4 !== 3 // true

    使用 大于等于 运算符(>=)来比较两个数字的大小。如果大于等于运算符左边的数字比右边的数字大或者相等,它会返回 true。否则,它会返回 false

    与相等运算符相似,大于等于 运算符在比较的时候会转换值的数据类型。

    例如

    6 >= 6 // true
    7 >= '3' // true
    2 >= 3 // false
    '7' >= 9 // false

    使用 小于 运算符(<)比较两个数字的大小。如果小于运算符左边的数字比右边的数字小,它会返回 true。否则,他会返回 false。与相等运算符类似,小于 运算符在做比较的时候会转换值的数据类型。

    例如

    2 < 5 // true
    '3' < 7 // true
    5 < 5 // false
    3 < 2 // false
    '8' < 4 // false

    有时你需要在一次判断中做多个操作。当且仅当运算符的左边和右边都是 true逻辑与 运算符(&&)才会返回 true

    同样的效果可以通过if语句的嵌套来实现:

    if (num > 5) {
    if (num < 10) {
    return "Yes";
    }
    }
    return "No";

    只有当 num 的值在6和9之间(包括6和9)才会返回 "Yes"。相同的逻辑可被写为:

    if (num > 5 && num < 10) {
    return "Yes";
    }
    return "No";

    如果任何一个操作数是true逻辑或 运算符 (||) 返回 true。反之,返回 false

    举个例子:

    if (num > 10) {
    return "No";
    }
    if (num < 5) {
    return "No";
    }
    return "Yes";

    只有当num大于等于5或小于等于10时,函数返回"Yes"。相同的逻辑可以简写成:

    if (num > 10 || num < 5) {
    return "No";
    }
    return "Yes";

    ifelse if语句中代码的执行顺序是很重要的。

    在条件判断语句中,代码的执行顺序是从上到下,所以你需要考虑清楚先执行哪一句,后执行哪一句。

    这有两个例子。

    第一个例子:

    function foo(x) {
    if (x < 1) {
    return "Less than one";
    } else if (x < 2) {
    return "Less than two";
    } else {
    return "Greater than or equal to two";
    }
    }

    第二个例子更改了代码的执行顺序:

    function bar(x) {
    if (x < 2) {
    return "Less than two";
    } else if (x < 1) {
    return "Less than one";
    } else {
    return "Greater than or equal to two";
    }
    }

    这两个函数看起来几乎一模一样,我们传一个值进去看看它们有什么区别。

    foo(0) // "Less than one"
    bar(0) // "Less than two"
    if的区别是先判断小的条件,在满足大的条件,最后在是其他。

    if/else 语句串联在一起可以实现复杂的逻辑,这是多个if/else if 语句串联在一起的伪代码:

    if (condition1) {
    statement1
    } else if (condition2) {
    statement2
    } else if (condition3) {
    statement3
    . . .
    } else {
    statementN
    }

    任务

    if/else if语句串联起来实现下面的逻辑:

    num < 5 - return "Tiny"
    num < 10 - return "Small"
    num < 15 - return "Medium"
    num < 20 - return "Large"
    num >= 20 - return "Huge"

  • 相关阅读:
    判断图片是否存在,不存在则显示默认图片
    移动端开发时代理手机http访问查看效果(iphone)
    VS Code搭建TypeScript开发环境
    map,foreach和for的使用
    记一些常用的git命令
    js中创建对象的5种方法
    vuex简单使用
    记一下Slot的使用
    ES6中的箭头函数和普通函数有什么区别?
    计算属性、方法、侦听属性的区别
  • 原文地址:https://www.cnblogs.com/fengyuzhen34/p/8573379.html
Copyright © 2020-2023  润新知