zoukankan      html  css  js  c++  java
  • js学习笔记(三)

    JavaScript

    本系列笔记为JavaScript的学习笔记
    JavaScript 作用域和数组

    作用域

    全局变量定义在所有的block外部,并且能在函数的任意地方access。

    const satellite='The Moon',galaxy='The Milky Way'
    let stars = 'North Star' //全局变量
    const myNightSky = () =>{
      stars = 'Sirius'   //全局变量值会在函数中被改变
      return 'Night Sky: '+satellite+','+stars+','+galaxy;
    };
    console.log(myNightSky())
    console.log(stars)

    局部变量作用域只在block内,可以保证在外部不被访问和改变。

    const visibleLightWaves=()=>{
      let lightWaves = 'Moonlight'  //内部局部变量
      console.log(lightWaves)
    };
    visibleLightWaves()
    console.log(lightWaves)     //wrong ReferenceError,can't get local var 外部不能调用内部局部变量
    
    //由于局部变量可以做隔离,所以block可以有效的定义并使用变量,同时防止交叉污染
    const visibleLightWaves=()=>{
      let lightWaves = 'Moonlight'
      let region = 'The Arctic'
      if (region === 'The Arctic'){
        let lightWaves = 'Northern Lights'
        console.log(lightWaves)  //最内部if{}作用域的变量
      }
      console.log(lightWaves) //函数作用域中的变量
    };
    visibleLightWaves()     //调用函数
    
    //局部循环的变量之间互不干扰,但一定要按照scope各自准确声明
    const starCount = ()=>{
      var i = 5             //外部的i
      console.log('outside i is ',i)
      for (let i=0;i<12;i++){
        console.log('in side i is: ',i)  //循环内部的i 与外部的i互补干涉
      }
      console.log('after,outerside i is:',i)  //不因局部变量改变
    };
    starCount()     //调用函数



    数组

    用于组织和存储数据,看可以存储字符串、数字和布尔值等,并且是一种有序的结构。(类似于python中列表List)
    - 元素间用逗号分隔;
    - 可用array[i]索引,从0开始。
    - 字符串也可以按照数组读取每一个字符

    my_array = ['aaa','bbb'.'ccc']
    console.log(my_array[1])    //bbb 输出
    my_array[2] = 'cac'         //改变数组内容
    console.log(my_array.length) //数组大小
    my_array.push('back')       //后面压入
    my_array.pop()              //弹出最后一个
    
    /*数组包含一系列方法,join()将元素放入一个字符串内;slice(start,end)选取数组中元素;splice(index,n,items)删除指定位置并添加元素;shift()移除首元素并返回,unshift('items')头部添加n元素并返回后长度;**strong text**concat()连接两个数组 */
    
    
    //ref:http://www.w3school.com.cn/jsref/jsref_obj_array.asp
    //https://msdn.microsoft.com/zh-cn/library/htbw4ywd(v=vs.94).aspx
    
    let condiments = ['Ketchup', 'Mustard', 'Soy Sauce', 'Sriracha'];
    condiments.push('add')      //let 是块级变量,区别于var大范围变量
    condiments = ['aaa']
    
    //常量数组不可重现赋值
    const utensils = ['Fork', 'Knife', 'Chopsticks', 'Spork'];
    utensils.pop()
    console.log(utensils)       //常量 可以更改其中的元素
    utensils = ['aa']            //但是不能重新赋值 TypeError
    
    ----------
    
    





    tips
    1.同一类型变量可以在一行内统一声明,用逗号分隔
    2.常量const类型数组不可重新赋值reassigned,但可更改内部元素






  • 相关阅读:
    数据结构进阶——线段树
    基本数据结构—Hash哈希
    NOIP2013提高组 day2 2019.7.15
    基本算法——归并排序
    基本数据结构—Trie
    NOIP 2011 提高组 Day2 校模拟 7.11
    Noip2014提高组真题Day1,2 校模拟7.7
    NOIP2015 提高组 day1 7.8校模拟
    NOIP2008 提高组 6.9校模拟
    STL-#include<set>
  • 原文地址:https://www.cnblogs.com/Tom-Ren/p/9897849.html
Copyright © 2011-2022 走看看