day5
1-js 组成?
1、ECMAScript(JavaScript语法 )
2、DOM页面文档对象模型
3、BOM 浏览器对象模型
ECMAScript
ECMAScript 是由ECMA 国际( 原欧洲计算机制造商协会)进行标准化的一门编程语言,这种语言在万维网上应用广 泛,它往往被称为 JavaScript 或 JScript,但实际上后两者是 ECMAScript 语言的实现和扩展。
ECMAScript:ECMAScript 规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准。
DOM ——文档对象模型
文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标记语言的标准编程接口。 通过 DOM 提供的接口可以对页面上的各种元素进行操作(大小、位置、颜色等)。
BOM ——浏览器对象模型
BOM (Browser Object Model,简称BOM) 是指浏览器对象模型,它提供了独立于内容的、可以与浏览器窗口进行 互动的对象结构。通过BOM可以操作浏览器窗口,比如弹出框、控制浏览器跳转、获取分辨率等。
2-js 中有哪些数据类型?
js中有5种数据类型:Undefined、Null、Boolean、Number和String。
还有一种复杂的bai数据类型Object,Object本质是一组无序的名值对组成的。
Undefined类型只有一个值,即undefined,使用var声明变量,但是未对初始化的,这个变量就是Undefined类型的,例子:
var
i;
alert(i == undefined);//true
var i;与var i =
undefined;这两句是等价的。
包含Undefined值的变量和未定义的变量是不一样的。
Null类型也只有一个值:null.null表示一个空对象的指针。
Boolean类型:只有两个字面量true和false。但是js中多有的变量都可以使用Boolean()函数转换成一个Boolean类型的值。
Number类型:整数和浮点数。NaN:Not
a Number。这个数值用于本来要返回一个数值,但是却未能放回一个数值的情况,以防止报错。例如:1/0
返回的就是NaN。NaN的特点:1、任何涉及NaN的操作都会返回NaN。2、NaN对任何值都不相等,包括自己NaN本身。
针对NaN特性,JS内置了isNaN()函数,来确定数值是不是NaN类型。
String类型:略
typeof操作符:对一个变量进行推断变量的类型,可能返回以下字符串:
"undefined"
如果这个值,未定义或者为初始化
"boolean" 布尔值
"string" 字符串
"number" 数值
"object"
对象
"function" 函数
用法:typeof 95; 或者 typeof(95); 会返回"number".
3-typeof 和 instanceof 的区别
1、typeof返回结果是该类型的字符串形式表示【6】(number、string、undefined、boolean、function、object)
注意
typeof对于原始类型来说,除了null都可以显示正确类型
typeof对于对象来说,除了函数都会显示object
2、instanceof是用来判断 A 是否为 B 的实例,表达式为:A instanceof B,如果 A 是 B 的实例,则返回 true,否则返回 false。 在这里需要特别注意的是:instanceof 检测的是原型。
3、typeof能够检测出了null之外的原型类型(String、Number、Boolean、Undefined),对于对象类型能判断出function、其他的都为Object
4、判断一个值是否为数组,使用Array.isArray()
5、如果需要判断一个值是否为null,最直接就是与null比较
无论是typeof还是instanceof都不能准确判断出正确的类型。
4-怎么判断两个对象想等
方法一:通过JSON.stringify(obj)来判断两个对象转后的字符串是否相等
优点:用法简单,对于顺序相同的两个对象可以快速进行比较得到结果
缺点:这种方法有限制就是当两个对比的对象中key的顺序不是完全相同时会比较出错
方法二:getOwnPropertyNames该方法可以将Object对象的第一层key获取到并返回一个由第一层key组成的数组。
优点:相对方法一进行了优化,可以应对不同顺序的Object进行比较,不用担心顺序不同而对比出错
缺点:从方法中可以看到只能获取到第一层的key组成的数组,当对象是复合对象时无法进行多层对象的比较
5-js 中函数有哪些定义方式?
1:普通函数
函数表达式
格式为 let a= function(){}
函数声明
格式为 let function a(){}
匿名函数
格式为 function(){}
2:箭头函数
箭头函数,有许多种写法。都是感觉参数和函数体不同,自由的去掉小括号和大括号。
箭头函数中,不需要写function。
3:对象中的函数
{
a:function(){}
}
6-js 中函数有哪些调用形式?
1.以函数形式调用
function fun(){
alert("hello world");
}
fun();
2.函数作为对象方法调用
var myObject = {
firstName:"John",
lastName: "Doe",
fullName: function () {
return this.firstName + " " + this.lastName;
}
}
myObject.fullName();
3.使用构造函数调用函数
function myFunction(arg1, arg2) {
this.firstName = arg1;
this.lastName = arg2;
}
var x = new myFunction("John","Doe");
x.firstName;
4.使用apply()和call()方法调用
apply()
function myFunction(a, b) {
return a * b;
}
myFunction.call(myObject, 10, 2);
call()
function myFunction(a, b) {
return a * b;
}
myArray = [10,2];
myFunction.apply(myObject, myArray);

浙公网安备 33010602011771号