javascript基础知识

本文详细介绍了JavaScript的基础构成,包括ECMA语法、DOM和BOM的概念,以及JS的书写位置、注释、输入输出、变量管理、数据类型、运算符、流程控制、数组和对象操作、函数和作用域。旨在帮助读者理解和实践JavaScript的核心功能。
摘要由CSDN通过智能技术生成

JavaScript实现业务逻辑和页面控制(功能)

一、js组成

  • ECMA:JavaScript的语法,所以浏览器产共同遵守
  • DOM:页面文档对象,为JS提供很多操作元素方法和属性
  • BOM:浏览器对象模型,为JS提供很多操作浏览器窗口的方法和属性

二、js书写位置

1.行内

 <button onclick="alert('被点击了')">点击</button> -->

2.内部

<script>
    // 内部
    alert('页面打开了弹窗')
</script>

3.外部

在外部建立.js 后缀名文件 ,引入

<script src="./JavaScript文件名.js"></script>

三、js注释

  • 单行//
  • 多行/* */

四、输入输出

1.alert(''“)

浏览器的弹窗

2.console.log()

控制打印数据---主要用于开发人员打印信息,可以测试或者找bug

3.prompt()

收集用户信息

五、变量

数据存储容器,我们可以通过变量名进行获取或者修改

var 变量名=
let 变量名=
const 变量名=

步骤:

(1).声明变量

(2).赋值

1.变量命名规范

可以包含字母数字下划线 $符号

名称必须字母开头,也可以_和$

名称是分大小写

保留字不能用:if,break,case,switch

见名知意

2.多个变量声明

var  name = '张三',age=18,phone='110';

3.变量更新

通过新的值对变量进行赋值、

六、数据类型

对数据进行分类,不同数据占不同的空间变量的数据类型,在程序运行的过程中,根据等号的右边值来确定的,js拥有动态类型相同的变量可以做不同的类型

1.检测数据类型

typeof 数据类型检测

2.数据类型分类

2.1基本数据类型

2.1.1Number

数值类型 包括小数、整数、浮点数

0开头可以表示八进制,0x十六进制,0b开头二进制

Math.floor(x) 小数部分直接去除

Math.round(x) 四舍五入变为整数

isNaN()是否是数字

2.1.2String

用单引号或者是双引号   默认 unicode 编码

转义字符 \

length 属性:取得字符串长度

字符串拼接

使用+与其他类型进行数据拼接,最终获得都是字符串

当不同类型相加,会优先以字符串、数字类型为主(尽量规避)

模板字符串:${}可以是任意表达式,包括单独变量或者数学算式,使用之前需要确保变量声明过

let name="张三"
console.log(他的姓名是${name})
2.1.3Boolean 布尔值

true 和 false

等价 true --1

等价 false--0

2.2复杂数据类型

数组、对象

七、数据类型转换

把一种数据类型转换成另一种数据类型

1.转换成字符型

  • toString()转换成字符串
  • String()
  • 隐式转换

2.转换数字型

  • parseInt():转换整型

  • parseFloat():转换成浮点型

  • Number():必须纯数字

  • 隐式转换 运算符:递增递运算符

3.转换布尔型

隐式转换

八、运算符

也称操作符,用于实际赋值,比如和执行算数运算等功能符号

1.算数运算字符

+ - * / %(余数)

2.递增递运算符

  • 前置 ++data 先计算后返回
  • 后置data++ 先返回再计算

3.比较运算符

两个数据进行比较,比较结果就是布尔值

< >= <= == ===(全等:数据类型要相同) !=(不等于) !==(全不等于:数据类型要考虑)

4.逻辑运算符

  • && 逻辑与: 同真为真

  • || 逻辑或:有真为真

  • ! 逻辑非 :取反

短路运算:

短路运算

逻辑与的情况下: 表达式1为真,结果取决表达式2 表达式1为假,结果就是表达式1

逻辑或:表达式1为真,结果为真 ,表达式1为假,结果就是表达式2结果

5.赋值运算符

既有赋值又有运算

6.计算优先级

小括号>

递增递减运算符>

算数运算符>

关系运算符(>< <= >=)>

比较元素运算符(== === != !==)>

逻辑运算符(先&&后或)

九、流程控制

1.顺序结构

:最简单,最基本的流程结构,没有特定语法,程序按照代码的先后顺序执行

2.分支结构

根据不同条件,执行不同的路径代码,得到不同结果

2.1 if语句

单分支语句if

双分支语句if else

多分支语句 if else if else

2.2switch语句

switch表达式

switch(){

case 值1:

​ 执行代码

​ break

case 值2

​ 执行2

​ break

​ default:

​ 执行代码

}

2.3三元表达式

: ?

var sexName = sex == 1?'男':'女'

区别:

if和switch

if主要用于判断区间

switch用于判断等值(全等)

3.循环结构

循环:有一段代码要重复的执行

3.1for循环

for(初始化变量;条件判断;操作表达式){循环体}

初始化变量:循环开始的初始数据

条件判断:执行条件,用来判断是否继续执行

操作表达式:操作初始化变量

continue:终止本次循环

break:跳出循环,整个循环

3.2 while 循环

var i = 0;
while(i<5){
    i++
}

3.3 do..while 循环


var j = 0;
do{
    console.log(j);
    j+=1;
}while(j<3)

十、数组

数组是指一组数据的集合,其中每个数据都被称为元素,数组中可以存放任意类型的元素

1.创建数组

var arr1 = new Array();
var arr2 = [1, 2, 3, "4", true];

Array.from

2.访问数组元素

索引(下标):用来访问数组元素的序号(数组下标从0开始),超出索引会返回undefined

语法:数组[索引]

3.遍历数组


for (var i = 0; i < arr2.length; i++) {
    console.log(arr2[i]);
}

for(let 元素 of 数组变量){}

数组变量.map((元素,下标))

4.判断是否是数组

Array.isArray()

5.数组长度

数组名.length

6.翻转数组

设置新数组,旧的数组倒序赋值

var list = [1, 2, 3, 4, 5];
var newlist = [];
for (var i = list.length - 1; i >= 0; i--) {
    newlist[newlist.length] = list[i];
    console.log(newlist);
}

十一、对象

对象是一组无序的相关属性和方法的集合,所有的事物都是对象

  • 属性:事物的特征
  • 方法:事物的行为

1.创建对象

利用字面量,大括号

var person = {
    name:'张三',
    age:18,
    id:18
}
  • 属性跟方法采用的是键(属性名)值对的写法
  • 多个属性由逗号隔开
  • 方法属性后面是一个匿名函数

获取对象值属性值:

  • 对象名.属性名,方法情况下:对象名.属性名()
  • 对象名['属性名']

构造函数创建

function 构造函数名字(参数1,参数2...){
    this.属性名 = 值
}
new 构造函数名字
  • 构造函数名首字母大写
  • 不需要return
  • 调用时候new

new Object()

var personal = new Object()
console.log(personal);
personal.name = '小红'
personal.age = 20

2.遍历对象

for in

for(item in p3){
    // item属性名
    console.log(item);
    console.log(p3[item]);
}

3.new关键词执行过程

new在内部创建一个空对象

this指向刚刚的空对象

执行构造函数里面的代码,给这个空对象去添加属性跟方法

返回对象

十二、函数

函数是JavaScript中的重要功能,它是一段代码的集合,这段代码可以在不同地方调用,从而提高JavaScript代码的复用性.

1.使用函数

function 函数名(){
    函数体
}

function:定义函数的关键字

调用函数

2.调用函数

格式:函数名()

3.函数参数

形参

function 函数名(形参1,形参2...){}

实参

函数名(实参1,实参2...)

4.形参和实参个数匹配

  • 当形参个数 = 实参个数,正常输出
  • 当形参个数<实参个数,从左到右匹配
  • 当形参个数>实参个数,未匹配形参为undefined

5.函数的返回值

return

6.立即执行函数

不需要调用直接可以自己执行的

作用:创建一个独立的作用域,局部作用域


(function(a){
    console.log('执行',a);
})(10);

十三、作用域

一段代码所用到的变量名,不是总有效的,这个名字使用范围,就叫做作用域,作用域提高了代码的局部性,增强程序的可靠性,减少了名字的冲突性

1.全局作用域

作用域整个script标签,单独的js文件

2.局部作用域

在函数内部起作用

3.全局变量和局部变量

  • 全局变量:在浏览器关闭销毁的,比较占内存
  • 局部变量:在程序运行完就销毁,比较节省内存

4.预解析

js解析器:预解析+代码执行

js引擎把代码中所有的var声明提升到作用域的最顶层(函数的顶层),变量提升,赋值不会被提升

  • 14
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值