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>

相关推荐
上去我就QWER1 小时前
Qt中如何获取系统版本信息
开发语言·qt
我是苏苏2 小时前
C#高级:程序查询写法性能优化提升策略(附带Gzip算法示例)
开发语言·算法·c#
木木子99992 小时前
业务架构、应用架构、数据架构、技术架构
java·开发语言·架构
容器( ु⁎ᴗ_ᴗ⁎)ु.。oO6 小时前
Magentic-ui 学习
学习
_李小白6 小时前
【OPENGL ES 3.0 学习笔记】延伸阅读:VAO与VBO
笔记·学习·elasticsearch
鱼与宇7 小时前
苍穹外卖-VUE
前端·javascript·vue.js
微露清风7 小时前
系统性学习C++-第九讲-list类
c++·学习·list
用户47949283569157 小时前
Safari 中文输入法的诡异 Bug:为什么输入 @ 会变成 @@? ## 开头 做 @ 提及功能的时候,测试同学用 Safari 测出了个奇怪的问题
前端·javascript·浏览器
大佬,救命!!!7 小时前
C++多线程同步与互斥
开发语言·c++·学习笔记·多线程·互斥锁·同步与互斥·死锁和避免策略
海边夕阳20068 小时前
【每天一个AI小知识】:什么是零样本学习?
人工智能·经验分享·学习