JavaScript学习第二天

1.学习JavaScript高级语法目的

降低后续对于前端框架学习难度

1.局部变量与全局变量

1.局部变量:

在函数体内部通过var声明的变量

1.局部变量特点:

局部变量只能在当前函数体内使用,不能

在函数体外使用

2.全局变量

在script标签下直接声明的变量

全局变量特征:

  1. 全局变量在声明时,自动分配给window对象作为其属性

  2. 全局变量可以在当前html文件中任意的函数中使用

3.特殊全局变量:

在函数体内没有通过var修饰符来修饰的变量

特殊全局变量特征:

  1. 特殊全局变量可以在当前html文件中任意的函数中使用

  2. 特殊全局变量必须在所在函数第一次运行时才会被声明

这里dname为特殊全局变量,使用时,必须先调用局部变量所在的函数,使局部变量先初始化,然后再使用该特殊全局变量。

3.arguments属性

1.arguments属性是函数内部属性

2.arguments属性是数组

3.在函数调用时,arguments属性用于接收实参

然后负责传递给函数形参

4.由于arguments属性存在,因此JavaScript中

函数调用时使用实参与形参可以不一致

形参大大降低了函数调用的难度

4.object类型对象

1.创建object类型对象

  1. 使用内置构造函数生成object类型对象

  2. 使用自定义构造函数生成object类型对象

  3. 使用JSON对象描述格式生成object类型对象

  4. 使用内置构造函数生成object类型对象

  1. 使用自定义构造函数生成object类型对象
  1. 使用JSON对象描述格式生成object类型对象

2.object类型对象特征

可以根据实际情况,自动添加或则移除的属性

属性管理方式一:

object类型对象.新属性名 = 值;

delete object类型对象.属性名;

属性管理方式二:

object类型对象[变量名]=值

delete object类型对象[变量名];

1.动态给对象添加和删除属性:

方式一:

方式二:

5.普通函数与构造函数的区别

1.JavaScript中无法在静态环境下判断函数身份

2.JavaScript中通过函数调用形式判断函数身份

3.如果函数以"对象.函数"形式调用,此时函数身份普通函数

4.如果函数以"new 函数"形式调用,此时函数身份构造函数

5.如果函数以普通函数身份调用,可以通过return返回结果

6.如果函数以构造函数身份调用,此时函数中return视为无效

此时返回只能是一个object类型对象

6.this指向(与Java完全一致)

1.如果函数以构造函数身份调用,this指向本次创建实例对象

2.如果函数以普通函数身份调用,this指向调用函数的对象

7.call函数

1.在JavaSript中,所有函数内置了一个call函数

2.call函数动态指定当前函数调用权利

3.命令格式

函数名.call(调用对象,实参1,实参2)

8.prototype属性

1.在JavaScript中,所有函数内置了一个prototype属性

2.由prototype属性指向对象被称为"原型对象"

3."原型对象"中属性被称为"原型属性"

4.由当前构造函数生成的所有实例对象可以共享原型属性

5."原型属性"类似于Java中静态常量属性(static final)

6."原型属性"不能被实例对象修改内容

9.function类型对象

1.由function类型修饰对象被称为函数对象

2.一个函数对象管理一个具体函数

3.function类型对象声明

方式一:标准function类型对象声明方式

function 函数类型对象名 (形参1,形参2){

}

方式二: 匿名式声明方式/命令行式声明方式

var 函数对象名 = function (形参1,形参2){};

方式一:标准function类型对象声明方式

方式二: 匿名式声明方式/命令行式声明方式

4.函数类型对象创建时机

1.JavaScript编译器对script标签进行"两次自上而下编译"

2.JavaScript编译器第一次编译时,只会将script标签中

所有以标准形式声明函数对象进行创建

3.JavaScript编译器第二次编译时,自上而下将script标签

所有的命令行编译执行

京东面试题:

10.JavaScript中继承方式:

1.借助于prototype实行实现继承

2.借助于call函数实现继承

1.借助于prototype实行实现继承

2.借助于call函数实现继承

11.介绍Jquery框架

1.简化了对于DOM对象定位难度

2.简化了DOM对象对标签中属性操作难度

3.增加JavaScript运行稳定性

<html>

<body>

<center>

<div name="two">这是第一个DIV</div>

<div name="two">这是第二个DIV</div>

<div id="three" name="two">这是第三个DIV</div>

<p name="two">这是一个段落标签</p>

<input type="button" value="定位ID等于three的标签" οnclick="fun1()">

<input type="button" value="定位name等于two的标签" οnclick="fun2()">

<input type="button" value="定位div标签" οnclick="fun3()">

</center>

<script type="text/javascript" src="jquery.js">

</script>

<script type="text/javascript">

function fun1(){

var domArray = $("#three") //省略书写document.getElementById("three")

var dom = domArray[0];

alert(dom.innerHTML)

}

function fun2(){

var domArray = $(".two");//document.getElementsByName(two)

for(var i=0;i<domArray.length;i++){

var dom = domArray[i];

alert(dom.innerHTML)

}

}

function fun3(){

var domArray = $("div");

for(var i=0;i<domArray.length;i++){

var dom = domArray[i];

alert(dom.innerHTML)

}

}

</script>

</body>

</html>

相关推荐
转调4 分钟前
每日一练:地下城游戏
开发语言·c++·算法·leetcode
Java探秘者5 分钟前
Maven下载、安装与环境配置详解:从零开始搭建高效Java开发环境
java·开发语言·数据库·spring boot·spring cloud·maven·idea
wusam5 分钟前
螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习04(环境准备)
学习·docker·centos
攸攸太上5 分钟前
Spring Gateway学习
java·后端·学习·spring·微服务·gateway
2303_8120444614 分钟前
Bean,看到P188没看了与maven
java·开发语言
秋夫人16 分钟前
idea 同一个项目不同模块如何设置不同的jdk版本
java·开发语言·intellij-idea
不穿格子衬衫32 分钟前
常用排序算法(下)
c语言·开发语言·数据结构·算法·排序算法·八大排序
萧鼎38 分钟前
Python调试技巧:高效定位与修复问题
服务器·开发语言·python
wdxylb39 分钟前
使用C++的OpenSSL 库实现 AES 加密和解密文件
开发语言·c++·算法
Geek之路1 小时前
QT系统学习篇(1)
开发语言·qt·学习