javascript语言的前身,javascript之前叫什么

本文介绍了JavaScript语言的起源,区分了前端和后端语言,详细讲解了ECMAScript标准,JavaScript的数据类型(基本和复杂)、变量命名规则、声明与提升,以及输出语句和作用域的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家好,小编来为大家解答以下问题,javascript语言的前身,javascript之前叫什么,现在让我们一起来看看吧!

文章目录

  • 前端三大语言
    在这里插入图片描述
  • 前端三层
    在这里插入图片描述

JavaScript 简介

一、初识JavaScript

1. JavaScript的历史
  • 创始人:布兰登·艾奇 Brendan Eich
  • Netscape 公司
  • 1995年发明 JavaScript,前身 LiveScript在这里插入图片描述
  • JavaScript垄断了浏览器端脚本:VBScriptJScript 、JavaScript
2. 什么是前端语言和后端语言

在这里插入图片描述

3. ECMAScript是JavaScript的标准
  • 1997年,欧洲计算机制造商协会(ECMA)设置了 JavaScript 的标准,命名为 ECMAScript在这里插入图片描述
4. JavaScript体系

在这里插入图片描述

5. JavaScript的语言风格和特性
  • 类C语言的风格,简单好学
  • 弱类型,繁文缛节少

二、JavaScript的书写位置

1. 内嵌式
  • <body><>标签,在内部书写 JavaScript 代码
2. 外链式
  • 将代码单独保存为 .js 格式文件,然后在 HTML 文件中使用< src=""></>这样的形式引入它

JavaScript不能脱离HTML网页运行

三、输出语句

1. alert() 语句
  • 弹出警告框
  • alert('慕课网');
    • alert()是内置函数,函数就是功能的“封装”(调用函数需要使用圆括号)
    • '慕课网'是函数的参数,因为它是字符串,我们需要将它用引号包裹
2. console.log() 语句
  • 控制台输出
  • console.log('慕课网');
    • console是 JS 的内置对象,通过“打点”可以调用它内置的log“方法”(所谓“方法”就是对象能够调用的函数)

四、处理报错

1. REPL 环境
  • 控制台也是一个 REPL 环境,可以使用它临时测试表达式的值在这里插入图片描述

JavaScript 变量

  • 变量是计算机语言中能储存计算结果或能表示值抽象概念
  • 变量不是数值本身,它们仅仅是一个用于存储数值的容器

一、命名

1. 方法
(1) 匈牙利命名法
  • 变量名=类型+对象描述
    • Int 整型 i
    • Float 浮点型 fl
    • Boolean 布尔 b
    • String 字符串 s
    • Array 数组 a
    • Object 对象 o
    • Function 函数 fn
    • Regular Expression 正则 re
(2) 驼峰命名法
  • 全部小写
    • 单词与单词之间用下划线_分割
  • 大小写混合
    • 大驼峰:每个单词的首字母大写
    • 小驼峰:第一个单词的首字母小写,其他单词的首字母都大写
2. 规则
  • 只能由 字母、数字、下划线、$ 组成
  • 首字符只能是英文字母或者下划线(不能以数字开头)
  • 不能是 JS 关键字或保留字
  • 变量命大小写敏感,a 和 A 是两个不同的变量

二、声明

1. 定义变量
  • 要想使用变量,第一步就是声明它,并给它赋值
  • var a = 5;
    使用var关键字定义变量
  • 一个变量只定义但没有赋初值,默认值是 undefined
  • 一个变量只有被var定义,并赋初值之后,才算正式初始化完成
2. 变量的使用
  • 当变量被赋值后,就可以使用它了
  • console.log(a);
    变量使用时不能使用引号
3. 改变变量的值
  • 变量的值可以被改变,改变变量值不再需要书写var关键字了
var a = 10;		// 定义变量a并赋初值为10
a = 18;			// 更改变量a的值为18
console.log(a); // 18
4. 变量的常见错误
  • 不用var定义,而直接将值赋予它,虽不引发报错,但会产生作用域问题
  • 尝试使用一个既没有被var定义过,也没有赋过值的字符,就会产生引用错误
5. 变量声明提升
  • 变量声明的提升:你可以提前使用一个稍后才声明的变量,而不会引发异常
  • 再执行所有代码之前,JS 有预解析阶段,会预读所有变量的定义在这里插入图片描述
  • 注意事项
    • 变量声明的提升是 JavaScript 的特性
    • 在实际开发时,不要刻意使用变量声明提升特性。一定要先定义并给变量赋初值,然后再使用变量

三、JavaScript数据类型

1. 两大类数据类型
  • 基本数据类型:Number、String、Boolean、Undefined、Null
  • 复杂数据类型:Object、Array、Function、RegExp、Date、Map、Set、Symbol 等
2. typeof运算符
  • 使用typeof运算符可以检测值或者变量的类型
    console.log(typeof 5); //number
  • 5种基本数据类型的 typeof 检测结果在这里插入图片描述
3. 基本数据类型
(1) Number(数字)类型
  • 所有数字不分大小、不分整浮、不分正负,都是数字类型
  • 小数中 0 可以省略.5; //0.5
  • 科学计数法:较大数或较小数(绝对值较小)可以写成科学记数法在这里插入图片描述
  • 不同进制的数字
    • 二进制数值以0b开头 0b10 //2
    • 八进制数值以0开头 017 //15
    • 十六进制数值以0x开头 0xf //15
  • 特殊的数字型值NaN
    • NaN是英语“Not a Number”的意思,但它是一个数字类型的值
    • 0除以0的结果是NaNGPT改写。事实上,在数学运算中,若结果不能得到数字,其结果往往都是NaN
    • 任何涉及NaN的操作都会返回NaN
    • NaN与任何值都不相等,包括NaN本身:alert(NaN==NaN); //false
  • Infinity属性
    • Infinity是表示正无穷大的数值;当数超过浮点数的上限时,即 1.797693134862315E+308,显示Infinity
    • -Infinity是表示负无穷大的数值;当数超过浮点数的下限时,即 -1.797693134862316E+308,显示-Infinity
    • 非零数字除以 0 的结果是 Infinity。因为比0大的数除以0,则会得到无穷大,所以 JS 用 Infinity 来显示出来
var a=0/0;      //NaN;
var a=1/0;      //Infinity;
var a=1/0*0;    //NaN;
(2) String(字符串)类型
  • 字符串就是“人类的自然语言”
  • 字符串要用引号包裹,双引号 或者 单引号 均可
  • 数字 11 和字符串 ‘11’ 在语义上是不同的,前者表达一个数量,后者是一个文本
  • 字符串的拼接:加号可以用来拼接多个字符串 'imo'+'oc' //'imooc'
  • 字符串和变量的拼接:要将一个变量的值“插入”到字符串中,要“斩断链接”
    var year = 2022;
    var str = '北京冬季奥运会在'+ year +'年召开';
  • 空字符串:一些时候需要使用空字符串,直接书写闭合的引号对即可 var str='';
  • 字符串的length属性:表示字符串的长度 '我喜欢JS,我也喜欢HTML'.length //14
  • 字符串的常用方法在这里插入图片描述
    在这里插入图片描述
  • charAt() 方法:可以得到指定位置的字符
    '我喜欢JS,我也喜欢HTML'.charAt(0) //'我'
    '我喜欢JS,我也喜欢HTML'.charAt(77) //''
  • substring() 方法substring(a,b)方法得到从 a 开始到 b 结束(不包括 b 处)的子串
    '我喜欢JS,我也喜欢HTML'.substring(3,5) //'JS'
    • 如果省略第二个参数,返回的子串会一直到字符串的结尾
      '我喜欢JS,我也喜欢HTML'.substring(6) //'我也喜欢HTML'
    • 参数 a 可以大于参数 b,数字顺序将自动调整为小的数字在前
      '我喜欢JS,我也喜欢HTML'.substring(5,3) //'JS'
  • substr() 方法substr(a,b)方法得到从 a 开始的 长度为 b 的子串
    '我喜欢JS,我也喜欢HTML'.substr(3,2) //'JS'
    • 第二个参数 b 可以省略,表示返回的子串会一直到字符串的结尾
      '我喜欢JS,我也喜欢HTML'.substr(3) //'JS,我也喜欢HTML'
    • 第一个参数 a 可以是负数,表示倒数位置
      '我喜欢JS,我也喜欢HTML'.substr(-4,2) //'HT'
  • slice() 方法slice(a,b)方法得到从 a 开始到 b 结束(不包括 b 处)的子串
    '我喜欢JS,我也喜欢HTML'.slice(3,5) //'JS'
    与 substring() 对比的不同点
    • slice(a,b)的参数可以是负数 (substring()不能是负数)
      '我喜欢JS,我也喜欢HTML'.slice(-4,-1) //'HTM'
    • slice(a,b)中参数 a 必须小于 参数 b (slice()不能自动交换两个参数的位置)
      '我喜欢JS,我也喜欢HTML'.substring(5,3) //''
  • toUpperCase() 和 toLowerCase()
    • toUpperCase() 转为大写 'imooc'.toUpperCase(); //'IMOOC'
    • toLowerCase() 转为小写 'IMOOC'.toUpperCase(); //'imooc'
  • indexOf() 方法
    • indexOf()方法返回某个指定的字符串值在字符串中首次出现的位置
    • 如果要检索的字符串值没有出现,则返回 -1
(3) Boolean(布尔)类型
  • 布尔(Boole·George)英国19世纪数学家、逻辑学家
  • 布尔型值只有两个:truefalse,分别表示真和假
(4) Undefined类型
  • 一个没有被赋值的变量的默认值是undefined,而undefined的类型也是 undefined
  • undefined 既是值,又是一种类型,这种类型只有它自己一个值
  • 在变量声明提升时,变量的值也是undefined
(5) Null类型
  • null 表示“空”,它是“空对象”
  • 当我们需要将对象销毁、数组销毁或者删除事件监听时,通常把它们设置为null
  • typeof null; //object
    • 类型和typeof检测结果并不总是一一对应,比如数组用typeof检测结果也是 object
(6) 基本类型值小总结

在这里插入图片描述

4. 数据类型的转换
(1) Number() 函数
  • 其他值—>数字
    在这里插入图片描述
(2) parseInt() 函数
  • 字符串—>整数
    在这里插入图片描述
(3) parseFloat() 函数
  • 字符串—>浮点数
    在这里插入图片描述
(4) String() 函数
  • 其他值—>字符串
    在这里插入图片描述
(5) toString() 方法
  • 几乎所有值都有toString()方法,功能是将其他值转为字符串
(6) Boolean() 函数
  • 其他值—>布尔值
    在这里插入图片描述
5. 复杂数据类型
  • 数组、对象、函数、set、map
  • 复杂数据类型都是 “引用类型”
6. 基本类型和引用类型对比
  • 基本类型:Number、Boolean、String、Undefined、Null
  • 引用类型:Array、Object、Function、Regexp…
  • 相等判断时:
    • 基本类型会比较 是否相等
    • 引用类型会比较 是否相等,也就是说它会比较是否为内存中的同一个东西
  • 总结
    在这里插入图片描述

四、作用域

1. 全局变量
  • 全局变量:
    在函数以外定义的变量;
    在函数体内的无var的变量
  • 全局变量可以在任何位置调用
2. 局部变量
  • 局部变量:
    在函数内部使用var声明的变量;
    函数的参数变量
  • 局部变量只能在当前函数体内部调用
3. 优先级
  • 局部变量优先级高于同名全局变量
  • 参数变量优先级高于同名全局变量
  • 局部变量优先级高于同名参数变量
4. 特性
  • 忽略块级作用域
  • 全局变量是全局对象的属性
  • 局部变量是调用对象的属性
(1) 作用域链
  • 内层函数可访问外层函数局部变量
  • 外层函数不能访问内层函数局部变量
(2) 生命周期
  • 全局变量:除非被显示删除,否则一直存在
  • 局部变量:自声明其值函数运行完毕 或 被显示删除
  • 回收机制:标记清除、引用计数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值