IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 软件测试学习笔记——JS基础 -> 正文阅读

[JavaScript知识库]软件测试学习笔记——JS基础

目录

5.1 JS基础语法(javascript,script脚本)

5.2 JS引入

5.1 JS基础语法(javascript,script脚本)

1.输入输出语句

alert(msg)

console.log(msg)

prompt(info)

2.基本介绍

JS脚本语言:运行在客户端的脚本语言,实现业务逻辑和页面控制。
浏览器怎么运行JS:
浏览器由七个模块组成:用户界面,浏览器引擎,渲染引擎,网络,JS解释器,UI后端,数据持久化存储。
渲染引擎:用来解析HTML和CSS,俗称内核,如chrome浏览器的blink,老版本的weblink.
JS引擎(JS解释器):读取网页中的javascript代码,对其处理后运行,如chrome浏览器的v8。

3.JS的组成

ECMAscript

DOM:页面文档对象模型

BOM:浏览器对象模型

4.变量

基本介绍:用于存放数据的容器。

变量的使用

变量命名规范

5.数据类型

8种数据类型

基本数据类型(值类型)

number,string,boolean,undefined,null,beglnt,symbol

引用类型?(对象object)

获取变量数据类型

typeof检测变量的数据类型,返回一个字符串。

注:字面量是常量,值是固定的,在程序运行中不可更改。

数据类型转换

转为字符串

转为数字型(重点)

转为布尔型

6.运算符

算术运算符

递增递减运算符

比较运算符

逻辑运算符

赋值运算符

7.流程控制

顺序结构

分支结构

三元表达式

switch语句

8.循环

for循环

while循环

do-while循环

continue,break

9.数组

创建数组

new创建数组

数组字面量创建数组

获取数组元素

遍历数组

数组中新增元素

10.函数

函数的使用

声明函数

调用函数

函数的参数

函数的返回值:return语句

arguments的使用

函数的声明方式

自定义函数方式(命名函数)

函数表达式方式(匿名函数)

11.作用域

全局作用域:作用于所有代码的执行环境(整个script标签内部)或一个独立的js文件

局部作用域:作用于函数内的代码环境,与函数有关。

块级作用域:块作用域由{}包括(es6)

变量作用域的分类

全局变量:在代码任何地方都可以使用,关闭浏览器才会被销毁,比较占内存

局部变量:函数内部使用,所在代码块被执行时才进行初始化,代码块运行结束被销毁,更节省内存空间。

作用域链:采用就近原则来查找变量的最终的值。

12.预解析

变量预解析

(变量提升)

变量提升:变量的声明被提升到当前作用域的最上面,赋值不会提升。

函数预解析

(函数提升)

函数提升:函数的声明被提升到当前作用域的最上面,不会调用函数。

13.对象

创建对象

字面量创建

new object创建

构造函数创建

new关键字

new在执行时会做:
1.在内存中创建一个新的空对象。
2.让this指向这个空对象。
3.执行构造函数中的代码,给新对象添加属性和方法。
4.返回这个新对象。(构造函数中不需要return)

遍历对象属性

for...in语句用于对数组或对象的属性进行循环操作。

for (变量 in 对象名) {//在此执行代码}

14.内置对象

Math对象

不是构造函数,有数学函数和常数的属性和方法。
Math.PI //圆周率;floor() //向下取整;ceil() //向上取整;
round() //四舍五入;abs() //绝对值;max(),min() //最大最小值。

日期对象

是构造函数,需要实例化后才能使用,Date实例用来处理日期和时间。

数组对象

创建数组对象的两种方式:
1.字面量方式。
2.new array()

检测是否为数组:
instanceof 运算符,判断对象所属的类型、
Array.isArray()判断一个对象是否为数组,isArray()是HTML5中提供的方法。

字符串对象

基本包装类型:把简单的数据类型包装成复杂的,使基本数据类型有属性和方法。

字符串的不可变:里面的值不可变,看上去可以改变内容,但其实地址改变,新开辟一个内存空间。

根据字符返回位置:操作完成,会返回一个新的字符串。

根据位置返回字符

字符串操作方法

replace()方法:replace(被替换的字符串,目标字符串);

split()方法:切分字符串,将字符串切分为数组。

javascript是一种脚本语言,主要功能是修改html页面内容,包括创建,删除html页面元素,内容,外观,位置,大小等。

<!DOCTYPE html>

<html>

?????<body>

?????<script type="text/javascript">

?????</script>

?????</body>

</html>

4. 变量:javascript是弱脚本语言,使用变量前可以无需定义。javascript支持两种方式引入变量:1.隐式定义(直接给变量赋值)2.显示定义(使用var关键字定义变量)。

5.数据类型:基本数据类型有5种:

数值类型:包含整数和浮点数。

布尔类型:只有true和false,用于逻辑判断。

字符串类型:字符串变量必须用(),引号可以是单引号,也可以是双引号。

undefined类型:用来确定已经创建但没有初值的变量。表示某个变量不存在或没有分配值,也可表示对象的属性不存在。

null类型:表达某个变量的值为空。

复合类型有3种:

Object:对象:一系列命名变量(属性),函数(方法)的集合。

Array:数组

Function:函数

Javascript是基于对象的脚本语言,提供了大量的内置对象供用户使用,其中常见的内置类有:

array

date

error

function

math

number

object

string

数组类

日期类

错误类

函数类

数学类

树值类

对象类

字符串类

9.数组:数组是一系列的变量。

数组的定义方式:

var a = [3, 5, 20]; // 定义的时候初始化数组

var b = []; // 创建一个空数组

var c = new Array(); // 创建一个空数组

数组长度可变,数组长度=所有元素索引最大值+1;同一数组中元素类型可以互不相同;访问数组元素时不会产生数组越界,访问未赋值的数组元素时,该元素的值为undefined。

  1. 函数:先对参数类型进行判断,用typeof运算符判断变量的数据类型。

定义函数的三种方式

定义命名函数

function functionName(parameter-list)
{
????statements
}

函数最大作用是提供代码复用,所以应该将需要重复使用的代码块定义成为函数,提供更好的代码复用。函数可以有返回值也可以没有返回值,函数的返回值使用return语句返回,在函数的运行过程中,一旦遇到了第一条return语句,函数就返回返回值,函数运行结束。

定义匿名函数

function(parameter list)
{
????statements
};

无须指定函数名,而是将参数列表紧跟function关键字。实际上是定义一个函数对象(即Function实例),可以将这个对象赋给另一个变量,通过变量来执行调用函数。但可读性差。

函数

可以被调用,javascript的函数是一个函数,也是一个类。

this关键字,被this所修饰的变量不再是局部变量,它是该函数的实例属性。

对象

定义一个函数时,系统会创建一个对象,该对象是function类的实例。

this.info = function() // info创建一个匿名函数

方法

定义一个函数时,该函数通常会附加给某个对象,作为该对象的方法。

在定义函数的同时,也得到了一个和函数同名的类

在调用函数时使用new关键字,可以返回一个Object,这个Object不是函数的返回值,而是函数本身产生的对象。

根据函数中声明变量的方式,函数中的变量有3种:

局部变量

在函数中以普通方式声明的变量,包括以var或者不加任何前缀声明的变量

实例属性

在函数中以this前缀修饰变量

类属性

在函数中以函数名为前缀修饰变量

函数调用的三种方式:

直接调用函数

不灵活

以call()方式

call()方法的语法格式如下:
函数引用.函数(调用者,参数1,参数2...),如:fn.call(null, index, array[index])
直接调用函数与通过call()方法调用函数的关系:
调用者.函数(参数1,参数2...) = 函数.call(调用者,参数1,参数2...)

通过call()调用函数时,必须在括号中详细的列出每个参数

apply()方式

myfun.apply(this, arguments);

通过apply()动态地调用函数时,可以在括号中以arguments来代表所有参数。

函数的参数

基本类型参数

对于基本类型参数,JavaScript采用值传递的方式,当通过实参调用函数时,传入函数里的并不是实参本身,而是实参的副本,因此在函数中修改参数值并不会对实参有任何影响。

var x = 10;
change(x);
console.log(x); //10

复合类型的参数

值传递的方式

空参数

函数声明中包含一个参数,但调用时并没有传入任何参数,这种情况对于强类型语言(Java,C)是绝对不允许的,但JavaScript会将没有传入实参的参数值自动设置为undefined。

由于JavaScript调用函数时对传入的实参并没有要求,即使定义函数时声明了多个形参,调用函数时也并不强制要求传入相匹配的实参。因此JavaScript没有所谓的函数“重载”,对于JavaScript而言函数名就是唯一的标识

  1. 运算符:

算术运算符

加法

var sum = a + b;

乘法

var sub = a * b;

减法

var sub = a - b;

除法

var sub = a / b;

取余

var sub = a % b;

自加(++)

var sum = b++ + a; ?
console.log(sum); //15

自减(--)

var sum = --b + a;//a=5,b=10
console.log(sum); // 14

var sum = ++b + a;
console.log(sum); // 16

var sum = b-- + a;
console.log(sum); // 15

位运算符:

&

|

~

^

<<

>>

>>>

异或

左移

右移

无符号右移

比较运算符:

>

>=

<

<=

==

!=

===

!==

等于

不等于

严格等于

严格不等于

逻辑运算符:

&&

||

三目运算符:(A) ? B : C; ?A的值为true,返回B语句,A为false,返回C语句。

异常捕获:

1)JavaScript只有一个异常类,Error,无须在定义函数时声明抛出该异常,所以没有throw关键字

2)JavaScript是弱类型语言,所以catch语句后括号里的异常实例无须声明类型

3)JavaScript只有一个异常类,所以try块最多只能有一个catch块

4)获取异常的描述信息是通过异常对象message属性,而不是通过getMessage()方法实现。

With语句:作用是避免重复书写同一个对象。

with(object)

{

????statements

} ?????//只有一行语句时,花括号可以省略。

7.流程控制:有基本分支语句if,if-else,循环语句for,while,for...in等。

分支语句

if语句

// 形式1
if (expression)
{
??statement
}

//statement只有一行代码时,省略花括号

// 形式2
if (expression)
{
????statement
}
else
{
????statement
}

if (expression)
{
????statement
}
else if (expression)
{
????statement ?
}
else
{
????statement
}

switch语句

switch (expression)
{
????case condition 1: statemnt
??break;
????case condition 2: statemnt
??break;
????default: statemnt
}

循环语句

while语句(先判断循环条件,条件为真 执行循环体)

while (expression)
{
????statement
}
//当表达式的值为true时,执行循环体,false则结束循环。无false时会造成死循环。

do-while语句

do
{
??statement
}
while (expression)
//先执行循环体,然后判断循环条件,如果条件为真,则执行下一次循环。否则中止循环。

for循环

for (var i = 0; i < Things.length; i++) { ??}
?(初始化;判断是否执行下一次循环;循环结束后执行语句)

for in循环

for (index in object)
{
????statement
}
//for in循环的本质是一种foreach循环,它主要有两个作用:
1)遍历数组里的所有数组元素。当遍历数组时,for in 循环的循环计数器是数组元素的索引值
2)遍历JavaScript对象的所有属性

中止循环语句

break语句

break则是完全中止整个循环,开始执行循环体后面的语句。

continue语句

continue只是中止本次循环,接着开始下一次循环,

5.2 JS引入

页面引入JS的方法:

  1. 在页面直接写入<script type=”text/javascript”>JS代码</script>
  2. 在页面中引入外部文件<script src=”xx.js”></script>

在页面中直接写入<script type="text/javascript">js代码</script>。

在页面中引入外部文件<script src="xx.js"></script>。

在js中引入外部js,通过document.wirite("scr"+"ipt src='xx.js'></scr"+"ipt">。

在js中引用其他js片段,document.write("<scr"+"ipt>alert(xxx)</scr"+"ipt>")。

通过DOM添加:var scr=document.createElement("script"); scr.src="xxx.js";

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-11 12:37:51  更:2021-11-11 12:39:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:36:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码