一,数据类型知识补充
String()有参函数:null->null undefined–>undefined 其他都可以转换为string类型
boolean 和Number类型都是调用了toString()方法,null和undefined没有toString()方法
Number()参数放进去
字符串–>Number 数值类型直接转换,只要出现了非数值类型的变为NaN
空格或者空串 返回0
字符串类型的会自动转换为数字类型 再取整 ,非字符串类型的会先转换成字符串类型
yu=parseInt(yu,16);//控制进制转换为哪个进制 把yu转换为16进制的
二,对象知识
属性名:
1).对象的属性名不强制要求遵守标识符的规范
什么乱七八糟的名字都可以使用
但是我们使用是还是尽量按照标识符的规范去做
如果要使用特殊的属性名,不能采用.的方式来操作
2).需要使用另一种方式:
语法:对象[“属性名”] = 属性值
读取时也需要采用这种方式 使用[]这种形式去操作属性,更加的灵活,
在[]中可以直接传递一个变量,这样变量值是多少就会读取那个属性
3).属性值
JS对象的属性值,可以是任意的数据类型 甚至也可以是一个对象
in 运算符
通过该运算符可以检查一个对象中是否含有指定的属性
如果有则返回true,没有则返回false
语法:
“属性名” in 对象
当比较两个基本数据类型的值时,就是比较值。
而比较两个引用数据类型时,它是比较的对象的内存地址,
如果两个对象是一摸一样的,但是地址不同,它也会返回false
三.函数
参数
可以在函数的()中来指定一个或多个形参(形式参数)
多个形参之间使用,隔开,声明形参就相当于在函数内部声明了对应的变量
但是并不赋值
在调用函数时,可以在()中指定实参(实际参数)实参将会赋值给函数中对应的形参
调用函数时解析器不会检查实参的类型,所以要注意,是否有可能会接收到非法的参数,如果有可能则需要对参数进行类型的检查函数的实参可以是任意的数据类型
调用函数时,解析器也不会检查实参的数量,多余实参不会被赋值,如果实参的数量少于形参的数量,则没有对应实参的形参将是undefined
定义一个函数,判断一个数字是否是偶数,如果是返回true,否则返回false
实参可以是任意的数据类型,也可以是一个对象当我们的参数过多时,可以将参数封装到一个对象中,然后通过对象传递,实参可以是一个对象,也可以是一个函数
构造函数
创建一个构造函数,专门用来创建Person对象的
构造函数就是一个普通的函数,创建方式和普通函数没有区别,
不同的是构造函数习惯上首字母大写
构造函数和普通函数的区别就是调用方式的不同
普通函数是直接调用,而构造函数需要使用new关键字来调用
① . 构造函数的执行流程:
1).立刻创建一个新的对象
2).将新建的对象设置为函数中this,在构造函数中可以使用this来引用新建的对象
3).逐行执行函数中的代码
4).将新建的对象作为返回值返回
使用同一个构造函数创建的对象,我们称为一类对象,也将一个构造函数称为一个类。
我们将通过一个构造函数创建的对象,称为是该类的实例
② . this的情况:
1).当以函数的形式调用时,this是window
2).当以方法的形式调用时,谁调用方法this就是谁
3).当以构造函数的形式调用时,this就是新创建的那个对象
其他补充:
使用instanceof可以检查一个对象是否是一个类的实例
语法:对象 instanceof 构造函数 如果是,则返回true,否则返回false
所有的对象都是Object的后代,所以任何对象和Object左instanceof检查时都会返回true