每日学到 42 - JavaScript内置对象

目录

JavaScript

数组

数组属性和方法

Date对象

String

Math对象

命名函数和匿名函数

函数自调用

函数的数据类型

函数作为函数的参数

函数的return

JS变量作用域

隐式全局变量和全局变量

作用域链

预解析


JavaScript

数组

        var nums = new Array(5);

        nums[0] = 10;
        nums[1] = 10;
        nums[2] = 10;
       
        console.log(nums[0]);//10
        console.log(nums[3]);//undefined

        console.log(nums[5]);//undefined
        console.log(nums.length);//5
        // JavaScript可以访问数组中不存在的索引,会返回undefined,不代表数组已经扩容
        
        nums[5] = 10;
        console.log(nums.length);//6
        // 这时候元素增加,数组长度不够用,所以数组自动扩容。

数组属性和方法

    属性
        length
            设置或返回数组中元素的数目
    方法
        join( )
            把数组的所有元素放入一个字符串,通过一个分隔符进行分隔
        sort()
            对数组排序
        push()
            向数组末尾添加一个或更多元素,并返回新的长度
        concat()
            合并两个数组

Date对象

    var 日期对象=new Date(参数)
        参数格式:MM  DD,YYYY,hh:mm:ss

var date = new Date(2018,0,7);
//年 月 日 月份从0开始0-11

    方法
        getDate()
            返回 Date 对象的一个月中的每一天,其值介于1~31之间
        getDay()
            返回 Date 对象的星期中的每一天,其值介于0~6之间(注:0代表周日)
        getHours()
            返回 Date 对象的小时数,其值介于0~23之间
        getMinutes()
            返回 Date 对象的分钟数,其值介于0~59之间
        getSeconds()
            返回 Date 对象的秒数,其值介于0~59之间
        getMonth()
            返回 Date 对象的月份,其值介于0~11之间(注:0代表1月份)
        getFullYear()
            返回 Date 对象的年份,其值为4位数

String

    var 字符串对象=new String(参数)
        参数 是要存储在 String 对象中或转换成原始字符串的值
    属性
        length
            字符串的长度
    方法
        charAt()
            返回在指定位置的字符(注:字符串中第一个字符的下标是0)
        concat()
            连接字符串
        replace()
            用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串
        split()
            把一个字符串分割成字符串数组
        indexOf()
            返回某个指定的字符串值在字符串中首次出现的位置
        lastIndexOf()
            返回一个指定的字符串值最后出现的位置
        match()
            可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配
        toLowerCase()
            把字符串转换为小写
        toUpperCase()
            把字符串转换为大写
        substr()
            从起始索引号提取字符串中指定数目的字符(不建议使用)
        substring()
            提取字符串中两个指定的索引号之间的字符
        slice()
            提取字符串的某个部分,并以新的字符串返回被提取的部分

Math对象

    ceil()
        对数进行上舍入
    floor()
        对数进行下舍入
    round()
        把数四舍五入为最接近的数
    random()
        返回0.0~1.0之间的随机数

命名函数和匿名函数

    命名函数:如果函数有名字,就是命名函数
    匿名函数:如果函数没有名字,就是匿名函数

    区别:
        因为非匿名函数在定义时,就已经创建函数对象和作用域对象;所以,即使未调用,也占用内存空间;

        匿名函数,仅在调用时,才临时创建函数对象和作用域链对象;调用完,立即释放,所以匿名函数比非匿名函数更节省内存空间

理解了上面这两句,下面这段代码的输出结果就能理解了

			function f1() {
				console.log("哈哈哈");
			}
			f1();//你好

			function f1() {
				console.log("你好");
			}
			f1();//你好

			//如果在页面中有两个同名的命名函数,后面的一个命名函数会覆盖前面的命名函数

			var f2 = function() {
				console.log("函数表达式");
			};
			f2();//函数表达式
			var f2 = function() {
				console.log("函数声明");
			};
			f2();//函数声明
			//如果在页面中有两个同名的匿名函数,后面的匿名函数不会覆盖前面的匿名函数

            如果在页面中有两个同名的命名函数,后面的一个命名函数会覆盖前面的命名函数
            如果在页面中有两个同名的匿名函数,后面的匿名函数不会覆盖前面的匿名函数

函数自调用

			//先声明函数
			function f1(){
				console.log("先声明函数,再调用");
			}
			f1();
			
			//声明函数的同时进行调用
			(function f2(){
				console.log('声明函数的同时调用函数');
			})();

函数的数据类型

    函数是有数据类型,它的数据类型是:function

函数作为函数的参数

			//回调函数:在一个函数中去调用另外一个函数,调用的这个函数是由参数传递过来的
			function f1(fn){
				console.log('我是f1函数里的输出语句');
				fn();	
			}
			function f2(){
				console.log("我是回调函数哦~");
			}
			f1(f2);

函数的return

			function max(num1,num2){
				if(num1>num2){
					return num1;
				}else{
					return num2;
				}
			}
			var max =max(1000,200);
			console.log(max);

    函数的返回值可以是函数

			function f1() {
				console.log("f1函数调用了");
				return function() {
					console.log("我是f1函数里return返回的结果");
				};
			}
			//ff是一个匿名函数
			var ff=f1();
			ff();

JS变量作用域

    JS没有作用域的概念,但是,函数中定义的变量只能在函数中使用

    全局变量和局部变量区别:作用域不同、声明位置不同、生存期不同
        全局变量:在函数外声明的变量,网页上的所有脚本和函数都能访问它
        局部变量:在函数内部声明的变量(使用var),只能在函数内部访问它
            可以在不同的函数中使用名称相同的局部变量
        生存期
            局部变量在函数运行以后被删除
            全局变量在页面关闭后被删除

隐式全局变量和全局变量

    隐式全局变量
        指声明变量时没有使用声明变量的关键字
    隐式全局变量是可以被删除的,但是全局变量是不能被删除的

作用域链

    沿着作用域链一级一级地搜索的过程。搜索过程始终从作用域链底端开始,然后逐级向上回溯,直到找到为止(如果找不到,通常会报错)

预解析

    变量的声明提前了----提前到当前所在的作用域的最上面
    函数的声明也会被提前---提前到当前所在的作用域的最上面

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值