JS —— 2、数值、数组、对象、函数、预解析、作用域、深浅拷贝

目录

9、数值(转换为数值)

(1)parseInt 字符串转换整数

(2)parseFloat字符串转换小数

(3)Number任何转换数值

(4)toFixed、toPrecision

10、数组

1)

(1)toString数组转换字符串

(2)join拼接

2)添加:

(3)unshift头部添加

(4)push尾部添加

3)删除:

(5)pop删除尾部

(6)shift删除头部

(7)splice删除指定位置

4)

(8)slice获取指定数值

(9)concat合并数组

5)排列

(10)sort顺序

(11)reverse逆序

6)遍历

(12)for

(13)forEach

(14)map

(15)for in

7)筛选

(16)filter返回满足条件的元素

(17)every全部满足才返回turn

(18)some只要有一个满足就返回turn

(19)reduce累加

11、对象

1)定义对象两种方式

(1)new方式

(2)字面量方式

1、简单字面量方式

2、(常用) 嵌套字面量方式

2)属性

(1)写法

3)序列化

(1)JSON.stringify()  方法是将JS值(对象或者数组)转换JSON字符串

(2)JSON.parse()       方法是将JSON字符串转换为对象

(3)hasOwnProperty()       判断对象的属性是否存在

(4)assign()               对象的合并

(5)defineProperties()  直接在一个对象上定义新的属性或修改现有属性,并返回该对象

(6)keys()  返回一个由一个给定对象的自身可枚举属性组成的数组

(7)values();        返回一个给定对象自己的所有可枚举属性值的数组

(8)entries();       返回一个给定对象自身可枚举属性的键值对数组

(9)delete删除

12、函数

(1)函数声明与函数表达式

(2)自调用函数(自动调用)

(3)arguments

(4)写法

写法一:

写法二(推荐)

写法三(推荐)

13、预解析

14、作用域

注意1

注意2

15、深浅拷贝


9、数值(转换为数值)

parseInt() 方法            //字符串转换整数

parseFloat() 方法         //字符串转换小数

Number() 方法            //任何转换数值

toFixed()       //返回字符串值,从小数后开始数

toPrecision() //返回字符串值,从整个数字开始数

//去掉双引号,为30

(1)parseInt 字符串转换整数

 //30

(2)parseFloat字符串转换小数

(3)Number任何转换数值

(4)toFixed、toPrecision

toFixed()       //返回字符串值,从小数后开始数

toPrecision() //返回字符串值,从整个数字开始数

10、数组

  1. toString()      数组转换字符串
  2. join()             拼接元素
  3. unshift()        头部添加 
  4. push()           尾部添加 
  5. pop()            删除尾部
  6. shift()            删除头部,并把所有其他元素“位移”到更低的索引
  7. splice()          删除或替换指定元素
  8. slice()             获取指定元素,不会改变原数组
  9. concat()        拼接数组
  10. sort ()            顺序
  11. reverse()        逆序
  12. for                 遍历
  13. forEach()        方法用于调用数组的每个元素,并将元素传递给回调函数。
  14. map
  15. for in
  16. filter()             返回满足条件的元素
  17. every()           全部满足返回turn
  18. some()           只要有一个满足就返回turn
  19. reduce           累加,数组全部相加

1)

(1)toString数组转换字符串

(2)join拼接

2)添加:

(3)unshift头部添加

(4)push尾部添加

3)删除:

(5)pop删除尾部

(6)shift删除头部

(7)splice删除指定位置

-------------------------------------------------------------------------------

//替换

//6和7换成3

4)

(8)slice获取指定数值

(9)concat合并数组

5)排列

(10)sort顺序

(11)reverse逆序

6)遍历

(12)for

 

(13)forEach

(14)map

区别:map的区别在于,只是forEach没有返回值

(15)for in

集合{}:

数组[]: //获取的是下标

7)筛选

(16)filter返回满足条件的元素

     var arr15 = [2,3,5,6,7,18,9];
     var a15 = arr15.filter(function(item,index){
        return item >5;   
     });

//[6,7,18,9]

//返回满足条件的元素

(17)every全部满足才返回turn

(18)some只要有一个满足就返回turn

(19)reduce累加

11、对象

1)定义对象两种方式

(1)new方式

var person = new Object();

(2)字面量方式

1、简单字面量方式

var person2 = {};

2、(常用) 嵌套字面量方式

2)属性

(1)写法

3)序列化

  1. JSON.stringify()   方法是将JS值(对象或者数组)转换JSON字符串
  2. JSON.parse()        方法是将JSON字符串转换为对象
  3. hasOwnProperty() 该方法可以判断对象的自有属性是否存在
  4. assign()                该方法主要用于对象的合并
  5. defineProperties()  直接在一个对象上定义新的属性或修改现有属性,并返回该对象。
  6. keys()                  返回一个由一个 给定对象的自身可枚举属性组成的数组
  7. values();                返回一个给定对象自己的所有可枚举属性值的数组
  8. entries();               返回一个给定对象自身可枚举属性的键值对数组

(1)JSON.stringify()  方法是将JS值(对象或者数组)转换JSON字符串

(2)JSON.parse()       方法是将JSON字符串转换为对象

    var obj3 = {name:'abc',age:18,id:1};
    console.log(typeof  JSON.stringify(obj3))  //string
console.log(typeof  obj3); 					//object

    var str = JSON.stringify(obj3);
    console.log(typeof  JSON.parse(str));   	//object

(3)hasOwnProperty()       判断对象的属性是否存在

方式一:

检测属性是否是自有属性

方式二:

检测属性是否存在于某个对象中,自有属性继承属性都返回true

//true

区别:

(4)assign()               对象的合并

===========================================================

===========================================================

(5)defineProperties()  直接在一个对象上定义新的属性或修改现有属性,并返回该对象

defineProperty()  定义单个

defineProperties() 定义多个

===========================================================

writable:false

===========================================================

===========================================================

(6)keys()  返回一个由一个给定对象的自身可枚举属性组成的数组

//返回的是属性(数组类型)

(7)values();        返回一个给定对象自己的所有可枚举属性值的数组

//返回的是值(数组类型)

(8)entries();       返回一个给定对象自身可枚举属性的键值对数组

(9)delete删除

 //为18

12、函数

(1)函数声明与函数表达式

(2)自调用函数(自动调用)

(3)arguments

(4)写法

写法一:

    var _name = document.getElementById('name')
var _phone = document.getElementById('phone')

    //成为焦点
    _name.onfocus = function () {
        //nextSibling返回某个元素之后紧邻的节点
        this.nextSibling.style.display = "none";//紧邻的同级样式隐藏     
    };
    _phone.onfocus = function () {
        this.nextSibling.style.display = "none";//紧邻的同级样式隐藏 
    };
    
    //失去焦点
    _name.onblur = function () {
    //判断  如果表单的值为空   错误提示显示,反之表单的值不为空,错误提示隐藏
        if(this.value==''){   
            this.nextSibling.style.display="inline"; //紧邻的同级样式显示
        }else {
            this.nextSibling.style.display="none";  //紧邻的同级样式隐藏 
        }
    };
    _phone.onblur = function () {
    //判断  如果表单的值为空   错误提示显示,反之表单的值不为空,错误提示隐藏
        if(this.value==''){   
            this.nextSibling.style.display="inline";//紧邻的同级样式显示
        }else {
            this.nextSibling.style.display="none";  //紧邻的同级样式隐藏 
        }
    };

//onfocus(成为焦点)

onblur(失去焦点)换成chlick也可以

写法二(推荐)

//$是与querySelector无关

//一样

 //面向对象的写法

写法三(推荐)

//一样

13、预解析

预处理:创建一个词法环境,扫描JS中的用声明的方式声明的函数,用var定义的变量并将它们加到预处理阶段的词法环境中去

预解析:在全局中寻找var关键字声明的变量和通过function关键字声明的函数,主要把var , function , 参数等一些东西 存储进仓库里面(内存)。

 //先全部声明,再打印

========================================================

========================================================

//函数的优先级更高

========================================================

 //结果为99

// ? 第一行写c会报错c去掉了

//a、b、d、e都是undefined,c是报错

14、作用域

作用域:

ES5中只有全局作用域和函数作用域,没有块级作用域

ES6中添加了let\const,他可以保证外层块不受内层块的影响。即内层块形成了一个块级作用域,这是let\const的一个特点;今天我们着重讲的是函数作用域与全局作用域。

(1)在全局变量和局部变量不同名时,其作用域是整个程序

(2)在全局变量和局部变量同名时,全局变量的作用域不包含同名局部变量的作用域

同名时:内外都是var a=1,则各做各的

注意1

同名时:内外都是var a=1,则各做各的

//结果为undefined原因:变量同名

注意2

//结果为undefined原因:变量同名,但是变量范围大小不同

   

15、深浅拷贝

========================================================

========================================================

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值