JavaScript(ECMAScript上)

JavaScript

​ 客户端脚本语言

  • javascript和java之间的关系
    • 类似张三和张三丰,老婆和老婆饼,印度和印度尼西亚,周杰和周杰伦…

JavaScript的组成

  • ECMAScript 核心语法
  • DOM 文档对象模型
    • 操作html元素的方法和接口
  • BOM 浏览器对象模型
    • 与浏览器进行交互的方法和接口

JavaScript的使用方式

  • 行内:结合事件一起使用
  • 内部:定义script标签对
  • 外部:使用script标签,引入外部的js文件
    • 语法:
    • 注意:如果一个script标签对引用外部文件了,就不要再写js代码了(无效)

JavaScript出现的位置

  • script可以出现在html中的任意位置

  • 推荐使用的位置:

    1. head中
      • 优点:便于后期维护
      • 缺点:有可能获取不到元素等… window.onload()
    2. body结束之前
      • 保证待页面中所有内容加载之后再去执行,不会出现获取不到元素的问题

JavaScript调试方式

  • alert() 弹出框

    • 阻塞页面加载,需要手动点击,不推荐使用
  • 2.document.write() 页面中写出

    • 当页面加载完成之后,再触发doucument.write()的执行
    • 可以写出内容,及标签
    • 会覆盖页面,不推荐使用
  • 3.console.log() 控制台输出,推荐使用

    • console.info()
    • console.warn()
    • console.error()

变量

  • java是强类型的语言,js是弱类型的语言
  • 定义变量:
    • var 关键字
    • 声明的同时赋值
      • var 变量名 = 变量值;
    • 先声明后赋值
      • var 变量名;
      • 变量名 = 变量值;
  • 同时输入多个变量值,使用 , 进行分隔
  • 一个变量如果只声明未赋值就是undefined
    • is not defined 变量不是使用var关键字定义
  • 变量的作用域提升问题
    • 使用var关键字声明的变量,变量的声明会提升到当前作用域的最上方

数据类型

基础数据类型

  • String 字符串类型 — 控制台打印字体为 黑色
    • 把内容定义在一对 ‘’ 或者 “” 之间,但是要求前后引号一致
    • 可以使用转义字符 \
  • Number 数值型 — 控制台打印字体为 蓝色
    • NaN:not a number
    • 出现NaN类型的情况:
      • 直接赋值NaN
      • 无法正常运算出结果的时候会出现NaN类型
  • Boolean 类型 — 控制台打印字体为 蓝色
    • 严格区分大小写
  • Undefined 未定义 — 控制台打印字体为 灰色
    • 直接赋值undefined
    • 变量只声明未赋值
  • Null 空 — 控制台打印字体为 灰色
    • 直接赋值Null
    • 获取不到
    • Undefined和Null的区别:
      • undefined是有,但是没有值
      • null是没有定义,没有
  • function 函数
    • 使用关键字function定义函数

复合数据类型

  • 对象 Object
  • 语法:var obj = {
    key:value,
    key:value,

    }
  • 对象中的数据都是键值对形式存在的
  • 每两个键值对之间使用 , 分隔,最后一个键值对后不存在
  • key满足标识符的标识符的命名规范,如果不满足定义在一对引号中
  • value可以是任意数据类型的值

typeof 操作符

​ 判断数据的数据类型

  • 语法:
    • typeof 数据
    • typeof(数据)
    • 返回数据的类型的小写形式
    • 注意:null返回object

数据类型转换

自动类型转换

​ 不是为了进行类型转换才类型转换,而是为了进行某种操作需要满足某种类型,才会自动发生类型转换

  • +、-、*、/ 、…
  • ‘+’ 左右两边有字符串的出现,字符串的连接符使用
  • ‘+’ 左右两边没有字符串出现时,先把数据类型转为数值型,再去参与运算

强制类型转换

​ 通过方法,把任意类型转换成为一下三种形式

  • String类型

    • String(数据)
    • 在数据的前后添加一对引号
  • Number类型

    • Number(数据)

      • String
        • “” 0
        • " " 0
        • “纯数字” 纯数字
        • “非纯数字” NaN
      • Boolean
        • false 0
        • true 1
      • Null 0
      • Undefined NaN
    • parseInt()
      • 在转换之前,首先会分析该字符串,判断位置为0处的字符,判断它是否是个有效数字,如果不是,则直接返回NaN,不再继续,如果是则继续,直到找到非字符
    • parseFloat()

      • parseFloat()方法与 parseInt()方法的处理方式相似,从位置 0 开始查看每个字符,直到找到第一个非有效的字符为止,然后把该字 符之前的字符串转换成数字
      • 第一个出现的小数点是有效字符。如果有两个小数点,第二个小数点将被看作无效的,parseFloat()方法会把这个小数点之前的字符串转换成数字
  • Boolean类型

    • Boolean(数据)
      • String
        • “” false
        • " " true
        • 非空串 true
      • Number
        • 0 false
        • 非0 true
        • NaN false
      • Null false
      • Undefined false

运算符(只整理与JAVA不同的地方)

等号问题

  • = 赋值
  • == 比较值是否相等
  • === 比较值和类型是否都相等
    • 如果类型就不相等,不会进一步比较值

逻辑运算符

  • &&

    • 操作数为boolean类型时 --> 一个为假就是假,两个都为真就是真
    • 操作数有其他类型时 -->
      • 第一个操作数如果转为boolean类型为true,结果就是第二个操作数的值
      • 第一个操作数如果转为boolean类型为false,结果就是第一个操作数的值
  • ||

    • 操作数为boolean类型时–>一个为真就是真,两个都为假就是假
    • 操作数有其他类型时–>
      • 第一个操作数如果转为boolean类型为true,结果就是第一个操作数的值
      • 第一个操作数如果转为boolean类型为false,结果就是第二个操作数的值
  • ! 非 取反

  • 当操作数为其他类型时候,先转为boolean类型,再进行取反

  • !!

    • 布尔类型 --> 取反再取反,就是本身
    • 非布尔类型 --> 转为boolean类型

块 { }

  • js中的 {}不成作用域
  • js中的作用域只看函数

数组

JavaScript中数组的特性

  • 存储多个数据
  • 存储任意类型的数据
  • 长度可以改变
  • 有索引的概念,可以根据索引操作数据中的数据
  • 提供了一些列的方法操作数组
  • 长度属性:数组名.length
    • 可以更改数组的长度:数组名.length = 新长度
  • 使用数组中的数据 – 数据名[索引]:赋值,修改值,获取值
    • 数组中的每一个元素都可以被访问和修改,甚至是不存在的元素,无所谓越界

定义数组

  • new Array():通过new关键字创建一个空数组
  • new Array(值1,值2…):通过new关键字创建数组并同时赋值
  • [值1,值2,…]:字面量方式创建数组 ---- 推荐

数组中的属性

  • 当[]中的索引为非负整数(包括整数字符串):自动从0开始,不存在添加 undefined
  • 当[]中的索引为负数、小数、非数字符串:这些内容不计算在长度内,当成"属性"处理,相当于自定义属性

数组的遍历

  • 普通for --> 不遍历属性

  • for … in … --> 不遍历属性和索引中的 undefined

  • forEach --> 不遍历索引中的 undefined

    	//1.普通for
    for(var i=0; i < arr.length; i++){
        console.log(arr[i]);
    }
    
    //2.for ... in ...
    for(var a in arr){ // a作为索引
        console.log(arr[a]);
    }
    
    //3.forEach
    arr.forEach(function(element, index, arr){
        console.log(element, index, arr);
    });
    

数组的常用方法

  • push 添加元素到最后
  • unshift 添加元素到最前
  • pop 删除最后一项
  • shift 删除第一项
  • reverse 数组翻转
  • join 数组转成字符串
  • indexOf 数组元素索引
  • slice 截取(切片)数组,原数组不发生变化
    • 1个参数 这个索引位置开始截取到最后
    • 2个参数 从起始索引开始截取到结束索引,结束索引不包含
  • splice 剪切数组,原数组变化,可以实现前后删除效果
    • 1个参数 原数组相当于剪切,返回被截取的部分
    • 2个参数 参数1为起始索引,参数2为个数
    • 3到多个参数 参数1为起始索引,参数2为个数,后面的参数为替换的数据
  • concat 数组合并
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值