zoukankan      html  css  js  c++  java
  • js基础四

    作用域

    在函数内部定义的变量,旨在函数内部使用

    函数级作用域在js当中,只有函数才会产生作用域,而if、whhile、for都不会产生作用域

    var a =1;var fn1 = function(){

    var a = 10;

    };var fn2 = function(){

    console.log(a);   //这里的打印结果为1

    };fn1();fn2();

    var a = 10;

    function fn(b){ 系统自动声明b: var b = 10;

    a =30;
    function fn1(){
    var a = 40;
    console.log(a);   打印结果为40
    }
    function fn2(){
     a = 50; 给a赋值,这里fn2没有定义
     console.log(a); 打印结果为50
    
    }
    fn1();   这里的意思是调用函数fn1
    fn2();   这里的意思是调用函数fn2
    console.log(a);   打印结果为50

    }fn(a);console.log(a); 打印结果为50

    后面需要用到函数的计算的结果需要用到返回值return,希望用到函数的计算结果,后续需要用到就加,不需要就不需要加

    变量提升:在声明变量的时候,会把当前变量声明的时机放到当前作用域的开头

    	  只有变量的声明才有提升,变量的赋值没有提升

    cosole.log(a);var a = 10; 这里是简写的,一个声明var a; a = 10,将10赋值给a

    变量提升的含义:var a;console.log(a);这里打印结果为没有定义 undefined a = 10; a的赋值10不会提升,所以上面的打印结果是没有定义

    对象 用花括号括起来,是无序集合

    var obj = {

    name:'Bob',    数据与数据之间用,隔开     这里name为属性名,后面的Bob;属性名可以加上'',如'name' ='bob',不加也没有影响
    age:20,
    gender: 'male'
    123:flase,      这里的属性名可以以数字开头,但是
    'test+test': 'hello',         这里可以使用+,但是如果这里属性名不用 ''的话会出错,  

    }console.log(obj);

    console.log(obj.name) 取对象属性的值方式一:obj的对象name属性,加点:. 点会把点后面的名称直接作为属性名 .后面的值作为属性取值,

    console.log(obj['name']) 方式二:加方括号:会把 []中的返回值作为属性名// console.log(obj.test+test) 打印结果为unfi 使用点:对于一些特殊的属性名,比如使用数字开头,或者属性名中间出现了一些符号,这些属性只能通过方括号来取console.loe(obj['123']) 使用.的话,代码会紧凑,更直观,推荐使用.来取属性值

    function fn(a,b,c){

    var arr = [a,b,c];
    for(var i = 0;i < arr.length-1;i++){   数组排序
    for(var j = 0; j< arr.length-i-1;j++){   前length-i次中的最大的放在最后边
    if(arr[j] > arr [(j + 1]){
    	var temp = arr[j];
    	arr[j] = arr[j + 1];
    	arr[j + 1] = temp;
    }
    }						
    }                                 

    }

    var arr = [1,2,3]console.log(arr['0']) 这里0,加不加''打印的结果是一样的,对于数组,对象可以使用的格式,数组也可以. []console.log(arr['length']) 这里会打印这个数组的项数,3项,数组自带的 自带为数组的对象

    对象和数组的区别例:var obj = {

    0 : 1,
    1 : 2,
    2 : 3,

    }console.log(obj) console.log(obj['length']) 这个是对象,不会打印出数组的项数,属性的变化需要定义了才会有

    array对象方法   构建数组以下三种方式      var arr = [1,2,3]这个是数组字面量,如果没有特殊情况,就是用这个方式,比以下三种方法更简便

    一: condytuvyot是处理继承的var arr = new Array() 赋值的时候不够直观arr[0] =1;arr[1] =2;arr[2] =3;

    二:var arr = new Array(5) 不存储数据的话,length为5,如果arr[5]的话,打印出来的长度为6

    三:var arr = new Array(1,2,3)

    数组join的使用方法var arr = [1,2,3,'hello'];var result = arr.join ();数组每一项都拼接在一起console.log(arr);console.log(result);

    数组pop使用方法:把数组的最后一项删掉,会修改数组本身,将删除的一项作为返回值的方法 要是取最后一项的话,用[]取值就可以var arr = [1,2,3,'hello'];var result = arr.pop ();console.log(arr);console.log(result);

    数组pus使用方法:给数组添加一个或多项新项,第一项后的项数可以写也可以不写,会修改数组本身 并且返回新长度,添加新项是添加到末尾的;如果是添加数组的话,把数组作为一项(保留数组),添加到末尾中去,例2var arr = [1,2,3,'hello'];var result = arr.pus ('world');console.log(arr);console.log(result);例2

    var arr = [1,2,3,'hello'];
    var arr2 = [nh,nk]
    var result = arr.pus ('arr2');
    console.log(arr);
    console.log(result);

    reverse方法:修改元素组,把数组的从左到右的排序,改成从右到左 shift方法:删除数组第一项并将删除的一项作为返回值的方法

    slice方法,需要填写开始的角标,和结束的角标(结束的角标5不包括在内,不会被选取到)角标可以为负数,只有slice这里可以使用负数,代表从右往左数的对象 截取数组的片段 不会修改数组本身,截取出来的长度比实际的少1var arr = [1,2,3,'hello',4,5,'js'];

    var result = arr.slice ('3,5');    var result = arr.slice ('3,-2');
    console.log(arr);
    console.log(result);

    sort方法:对数组的元素进行排序 自动从小到大排序,对首字符进行从左到右进行排序 (要明白冒泡排序嵌套循环的机制,怎么把数组从小到大排序的,重要!) var arr = [2,1,3,7,4]; var arr = [23,1,300,7,4]; 后面的这个打印结果为1,23,300,4,7

    arr.sort();
    console.log(arr);    打印结果为1,2,3,4,7
    指定sort排序比较规则,放在一个函数中
    function rule(a, b){    
    if(a < b){      比较a,b哪一个在前面         
    	如果要让a出现在b的前面,返回小于0的数;
    return -1;
    }else{
    	要让b出现在a的前面,就返回大于0的数
    return 1;
    }

    }arr.sort(rule); arr.sort(rule());后面这个表示调用之后的返回值,先计算实参,打印的话还是按照默认的排序规则传进去的console.log(arr)

    	以上简写   从小到大排列     要从大到小排列的话将return a - b改成return b - a
    	function rule(a, b){
    		return a - b;
    	}
    	arr.sort(rule); 
    	console.log(arr);

    splice方法:作用一。删除数组中间的某一部分 需要填写两个参数,一个数删除的角标,第二个参数写需要删除几项

    var arr = [23,1,300,7,4]
    var result = arr.splice(2,1)
    console.log(arr);
    console.log(result); 这个是删除的项的返回值
    	   作用二。替换的特性,替换数组中的某一部分
    	    var arr = [23,1,300,7,4]
    		var result = arr.splice(2,1,400,500)
    		console.log(arr);
    		console.log(result)
    		作用三。在数组中某个位置插入新项
    		var arr = [23,1,300,7,4]
    		var result = arr.splice(3,0,100,200)   3表示在角标为3的位置插入,0表示不删除数组中的项
    		console.log(arr);
    		console.log(result)

    tostring方法:把数组转化成字符串,并返回结果shift 删除并返回数字的第一个元素unshift 向数组中的开头添加新的元素

  • 相关阅读:
    Python之Sklearn使用教程
    Centos 查看路径下所有文件中是否包含指定字符
    Centos7x 开启6379端口,Centos7x开启端口
    分享几个ip定位api【转】
    @Scheduled(cron = "* * * * * *")
    QueryRunner的使用
    linux redis重置密码、重启
    nginx里的sticky的作用
    windows环境xampp搭建php电商项目/搭建禅道
    hive中解决中文乱码
  • 原文地址:https://www.cnblogs.com/duanfuying/p/5989730.html
Copyright © 2011-2022 走看看