js部分基础

本文详细介绍了JavaScript的基础知识,包括bug的分类、数据类型、运算符、数据类型转换、程序结构、函数、数组、字符串、对象、事件处理、DOM操作、AJAX以及ES6新增特性等。同时讲解了JavaScript的变量作用域、面向对象编程概念以及异步处理的ajax通信。还涵盖了PHP和MySQL基础知识以及数据类型转换和JSON操作。文章深入浅出地阐述了JavaScript的各个关键知识点,适合初学者和开发者巩固基础。
摘要由CSDN通过智能技术生成

bug:程序中的错误、漏洞

分类:

  1. 有报错:
    (1). 在报错信息中,就可以查到bug的信息;
    (2). 有报错,代码没问题:
    在报错信息中,就可以查到bug的信息,根据报错变量,向上查找来源
  2. 没有报错,没有结果
    1、反向查找,先确定当前结果,若没有结果,向上一步,查看计算信息;
    通用方式:逐行执行,配合console.log(),打印1,或者当前变量或属性值的信息

工具帮助找到定位bug的信息
打断点:让浏览器逐行执行代码
1、使用js提供的关键字:debugger
2、使用浏览器提供的控制台,在浏览器的控制台的sources选项中找到当前要断点的文件,
点击要断点的行号。

数值类型:

  1. 字符型:string 引号包裹
  2. 数值型:number 数字
  3. 布尔型:Boolean true false
  4. 未赋值:undefined
  5. 对象:object {}
  6. 数组:array [] 数组是一种特殊的对象
  7. 函数:function

检测数据类型:
关键字:typeof eg:consol.log(typeof 需检测的数据)

声明变量:
关键字:var

变量命名规则:
‘字母’ ‘_’ ‘$’ 开头
最好语义化
使用数据类型首字母做前缀
不允许使用关键字和保留字
关键字:系统定义了功能
保留字:系统将来有可能定义功能
变量名由多个单词组成,用驼峰式命名法,单词首字母大写

运算符:

  1. 算数运算符:+ - * / %
    +:+两边出现一个字符,则为字符串拼接,结果为字符型
    - * / %:直接作为数值运算(隐式转换,将字符转为数值)
  1. 关系运算符:> >= < <= == != ===
    (1). > >= < <= !=:
    有一边 出现字符,则发生隐式转换,转为数值(有一个数值,则为数值)
    两边都是字符时,不发生隐式转换,逐位比较,得到结果则停止比较
    (2). ==:发生隐式转换
    (3). ===:严格等于,没有隐式转换,比较时不仅比较值,还比较数值类型
  1. 逻辑运算符:做布尔运算
    || && !
    运算规律:
    ||:从左往右,当第一个值为true,则结果为第一个值,否则为第二个值
    &&:从左往右,当第一个值为true,则结果为第二个值,否则为第一个值
  1. 赋值运算符:
    = += -= *= /= %= ++ –
  1. 目运算符:条件?语句1:语句2
    判断条件,若满足,执行语句1,否则执行语句2

数据类型转换:

js三大特殊值:
NaN:not a number,意外或非法转换的数字
参与逻辑运算时,结果为false
不是数字的数值型数据
isNaN():判断是否为NaN 值:true/false
undefined
null

隐式数据类型转换:
运算符中,转为数值型
if():任何类型都转为布尔值
规则:非0为true
非空字符串为true
对象{}永真
数组[]永真
函数function(){}永真
undefined、NaN、null为false
显示(强制):

  1. 字符转数值:
    1、parseInt(a,b);将字符转换为数值,从左向右,遇到第一个不是数值的字符,停止转换,若第一位不为数字,则结果为NaN,不识别小数点
    a:要转的字符
    b:将数值字符作为进制转为10进制
    2、parseFloat():将字符转换为数值,从左向右,遇到第一个不是数值的字符,停止转换,若第一位不为数字,则结果为NaN,识别小数点
    3、Math.round():四舍五入,严格转换,只能转换全数值型字符,识别小数点,出现非数值型字符,则为NaN
    4、Number():严格转换,只能转换全数值型字符,识别小数点,出现非数值型字符,则为NaN
  2. 数值转字符:
    1、toString(x) var num=123 var str=num.toString()
    不写参数,为数值转字符
    参数:转成相应进制
    2、toFixed(n) 保留n小数 ,做四舍五入

程序结构;

顺序结构:自上而下,逐行执行

选择(分支)结构:多条路径,根据不同条件,只执行其中一个

  1. 单分支:执行或不执行
    if(条件){执行语句}
    满足条件(true)就执行语句,不满足(false)则跳过执行语句
  2. 双分支:至少有两个选择,必须要选择一个
    if(条件){执行语句1}else{执行语句2}
  3. 多分支:多种情况,根据不同的条件选择其中一种
    switch(要判断的值){
    case1:执行语句1;
    case2:执行语句2;

    default:执行语句n;
    }
    case的穿透特性:在一个switch内只会进行一次判断,如果判断成功,后面的cass全部执行
    阻止case穿透:break
    在switch中的cass比较中,不存在隐式类型转换,为严格比较(===)

循环结构:重复执行某些代码
循环意义:省时省力,减少代码冗余
应用场景:多行多列的结构
规律:外层循环控制行,内存循环控制列
注意事项:内外循环计数器不能重复,同级循环的计数器可以重复
循环三要素 :
循环次数(停止条件)
计数器:用来统计循环的次数
改变计数器
死循环:无法通过自身控制结束的循环
特点:滥用死循环会消耗大量的性能造成浏览器卡死,但是可以使用死循环的原理,解决一些不确定执行次数的需求,最关键的是一定要在合适的时候使用循环的控制关键字结束循环

  1. while(条件){循环体}
  2. do{}wihle(){}:任何情况下,都比while多执行一次
    条件为true时,执行do后面的语句
    条件为false时,执行一次while后面的语句
  3. for(计数器;停止条件;改变计数器){循环体}
    控制关键字:
    break:立即结束循环,不再执行
    continue:跳过本次循环

函数一:

函数:由一堆代码组成的,实现了某个功能,可以直接执行或通过行为调用的代码段
函数的特点:重复使用、选择使用、忽略细节
声明函数的关键字:function

  1. 声明式
    声明函数 👉 function 函数名(参数){执行语句(函数体/函数的功能代码)}
  2. 赋值式
    var fn=function(){} 变量名名即为函数名

函数的执行
1、函数名+()
2、行为调用:调用有名函数时,函数名不能加()
函数的分类(写法)

  1. 有名函数:声明式创建的函数,正常函数,正常执行,正常使用
  2. 无名函数:非正常函数,不允许直接存在
    可以作为值存在-------------------赋值式创建函数
    可以作为实参存在------------------回调函数
    可以作为行为处理函数存在-------------事件处理函数
    可以作为匿名函数的函数体存在----------匿名函数
  3. 匿名函数:(function(){})()
    特点:立即执行
  4. 回调函数:将函数A作为参数,传到另一个函数B中,在函数B中执行函数A,那么函数A就是回调函数
  5. 构造函数:不是一种函数,是一种函数的执行方式
    关键字:new
    基本的构造函数:内置的构造函数
    首字母大写的函数
    eg:Number()
    只要被new执行,那么返回值,必然是对象
    高级的构造函数:自定义的构造函数

函数的参数

  1. 实参:
    函数在执行时的参数
    实参被形参接受并保存
    实参可以传递任何数据,相当于变量中可以保存任何数据
  2. 形参:
    函数在定义时的参数
    形参相当于变量,实参相当于赋的值
    参数可以有多个:
    形参和实参数量一致:一一对应
    形参多于实参:多的形参为undefined
    实参多于形参:多的实参被传到函数的一个区域中(arguments)
    arguments:函数内部的一个专门用来存储所有实参的数组对象

返回值
关键字:return
return作用:
可以将函数内部处理的数据或结果,返回到函数外部进行二次使用
立即结束函数
所有函数都有返回值,没有return,返回undefined,有return,返回return后面的数据

  1. 应用场景:
    (1).功能函数不需要返回值
    数据处理函数必须有
  2. 作用域:生效的区域,可以被使用的区域

分类
全局:整个代码空间
局部:函数内部
全局不能使用局部,局部可以使用全局
若全局变量与局部变量重名,在局部作用域内,局部变

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值