JS基础知识-ECMAScript

2023-11-18


JavaScript
概念:一门客户端脚本语言。
运行在客户端浏览器种。每一个浏览器都有JavaScript的解析引擎
脚本语言:不需要编译,直接就可以被浏览器解析执行了
功能:可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。

JavaScript发展史:
1、1992年,Nombase公司,开发出第一门客户端脚本语言,专门用于表单的校验。命名为:C–。后面更名为ScriptEase。
2、1995年,Netscape公司,开发了一门客户端脚本语言:LiveScript。后来,请来SUN公司的专家,修改LiveScript,命名为JavaScript。
3、1996年,微软抄袭JavaScript开发出JScript语言。
4、1997年,ECMA(欧洲计算机制造商协会),ECMAScript,就说所有客户端脚本语言的标准。
JavaScript = ECMAScript +JavaScript自己特有的东西(BOM+DOM)

ECMAScript:客户端脚本语言的标准

1.1、基本语法

1、与html结合方式
–内部js:定义< script>,标签体内容就是js代码
–外部js:定义< script>,通过src属性引入外部的js文件
注:< script>可以定义在html页面的任何地方。但是定义的位置会影响执行顺序。< script>可以定义多个
2、注释
–单行注释://注释内容
–多行注释:/注释内容/
3、数据类型
–原始数据类型:
number:数字。整数/小数/NaN(not a number)
string:字符串。字符串 “abc” “a” ‘a’
boolean:true和false
null:一个对象为空的占位符
undefined:未定义。如果一个变量没有给初始化值,则会被默认赋值为undefined
–引用数据类型:对象
4、变量
变量:一小块存储数据的内存空间
Java语言是强类型语言,而JavaScript是弱类型语言。
强类型:在开辟变量存储空间时,定义了空间将来存储的数据的数据类型。只能存储固定类型的数据。
弱类型:在开辟变量存储空间时,不定义空间将来的存储数据类型,可以存放任意类型的数据。
语法:var 变量名 = 变量值;
document.write();在页面打印数据
typeof(变量名); 求数据类型
5、运算符
–一元运算符:只有一个运算数的运算符
++ – +(正号)
–算数运算符 + - * / % …
–赋值运算符 = += -= …
–比较运算符 > < <= >= == ===(全等于)
–逻辑运算符 ! || &&
–三元运算符 ? :
6、流程控制语句
withch while for do…while if…else…
7、特殊语法
语句以;结尾,如果一行只有一条语句,则;可以省略(不建议)
变量的定义使用var关键字,也可以不使用;用:定义的变量是局部变量
不用:定义的变量是全局变量(不建议使用)

案例:九九乘法表

<style type="text/css">
	td{
		border:1px solid;
	}

</style>

<script type="text/javascript">
	document.write("<table  align = 'center'>");
	
	for(var i = 1; i<=9 ; i++){
		document.write("<tr>");
		for(var j = 1; j <= i;j++){
			document.write("<td>");
			document.write(j +"*" + i + "=" + i*j);
			document.write("</td>");
		}
		document.write("</tr>");
	}
	document.write("</table>");
</script>

请添加图片描述

1.2、基本对象

1、Function:函数(方法)对象
–创建: var fun = new Function(形式参数列表,方法体);
function 方法名称(形式参数列表){
方法体
}
var 方法名 = function(形式参数){
方法体
}
–方法
–属性:length:代表形参的个数
–特点:方法定义时,形参的类型不用写
方法是一个对象,如果定义名称相同的方法,会覆盖
在js种,方法的调用只与方法的名称有关,和参数列表无关
在方法声明种有一个隐藏的内置对象(数组),arguments,封装所有的实际参数
–调用:方法名称(实际参数列表);
2、Array:数组对象
–创建:var arr = new Array(元素列表);
var arr = new Array(默认长度);
var arr = [元素列表];
–方法:join(参数):将数组中所有元素放入一个字符串。元素通过指定的分隔符进行分割。 push():向数组的末尾添加一个或更多元素,并返回新的长度。
–属性:length:数组的长度
–特点:js中,数组元素的类型可变的。js中数组长度是可变的。

3、Boolean
4、Date
–创建:var date = new Date();
–方法:toLocaleString():返回当前date对象对应的时间本地字符串格

getTime();获取毫秒值。

5、Math
–特点:Math对象不用创建,直接使用。Math.方法名();
–方法:random():返回0-1之间的随机数,包含0不包含1
ceil(x);对数进行上舍入
floor(x):对数进行下舍入
round(x):把数四舍五入为最接近的整数。
–属性:PI
6、RegExp:正则表达式对象
正则表达式:定义字符串的组成规则。
–单个字符:[] 如:[a] [ab]a或b [a-z]a到z
特殊符合代表特殊含义的单个字符:\d:单个数字字符 \w:单个单词字符
–量词符号:?:表示出现0次或1次 *:表示出现0次或多次
+:表示出现1次或多次 {m,n}:表示m<=数量<=n
–开始接受符合 ^:开始 ¥:结束
–创建:var reg = new RegExp(“正则表达式”);
var reg = /正则表达式/;
–方法:text(参数):验证指定的字符串是否符合正则定义的规范

7、Global
–特点:全局对象,这个Global中封装的方法不需要对象就可以直接使用
–方法:encodeURI():url编码
docodeURL():url解码
encodeURIComponent():url编码,编码的字符更多
docodeURLComponent():url解码
parseInt():将字符串转为数字
isNAN():判断是否是NAN
eval():讲js字符串,并把它作为脚本代码来执行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS基础知识-ECMAScript 的相关文章

  • 实现悬停信息框

    我有一个日历 当用户将鼠标悬停在单元格上时 会出现一个很大的信息框 其中包含该日期的详细信息 虽然当用户离开时使信息框消失 但我遇到了一些麻烦 我基本上想要它 这样当鼠标光标移出信息框隐藏的日历单元格时 它就会消失 但我遇到了麻烦 因为mo
  • 无法读取未定义的“触及”属性

    为什么我会收到此错误无法读取未定义的属性 为什么无法读取formName controls email touched但它能够阅读formName get custDetails touched
  • 递归修剪对象中所有元素的更好方法?

    如果我有一个像这样的物体 const obj field subfield innerObj a asdasd asdas innerArr s ssad innerArrObj b adsad 我想出了这样的东西 const trimFi
  • html canvas动画卡顿

    谁能解释为什么提供的画布动画断断续续 我创建了一个测试存根来演示该问题 我在桌面上的 FF Chrome IE 以及 Android 上的 FF 和 Chrome 中看到了卡顿现象 口吃是由于垃圾收集造成的吗 似乎 raf 在每次调用时都会
  • 宽度:适合内容;在 Chrome 上工作,但在资源管理器上不工作

    我构建了一个应用程序 所有内容都在 Chrome 中完美显示 但如果我在 Windows 资源管理器中打开该应用程序 容器会比应有的小 我在用着width fit content 这是只适用于 Chrome 的东西吗 我怎样才能使其适用于所
  • 可以使用带有 HTML5 播放器的 Amazon S3/CloudFront 流式传输视频吗?

    我想使用 HTML5 视频播放器并流式传输视频 S3 CloudFront 可以实现这一点吗 我了解 Amazon 使用 RTMP 流媒体协议和 HTML5video标签不支持 RTMP 有没有办法用 HTML5 播放器播放视频 Wayne
  • setInterval() 在用户离开选项卡时暂停?

    javascript 中是否有任何方法的行为类似于 setInterval 并且当用户离开选项卡时停止并在用户再次进入选项卡时恢复 您可以使用以下方法创建自己的 API可见性API https developer mozilla org e
  • 如何循环遍历对象数组并生成键值对?

    我有一个像这样的对象数组 let someObj items id 12 value true id 34 value true id 56 value false 我想将其添加到现有对象中 其中 id 是该对象的键 如下所示 let ob
  • 避免在 ES6 的函数内定位 this 的对象作用域

    例如 我正在使用 D3 js 运行一个项目 导入特定模块并调用它们的函数 Setup TypeScript ES6 导入特定的 D3 组件 角6 我有一个对象 在本例中是一个角度指令 并在 SVG 画布上绘制一些圆圈 并希望它们在拖动事件上
  • 窗口大小调整触发的 DOM 事件

    我有一个布局相当复杂的页面 最初打开页面时 某些元素的对齐存在问题 但是 可以通过更改浏览器窗口的大小来 永久 解决此问题 显然 我不希望用户必须调整浏览器窗口的大小才能使页面正确显示 所以我想知道是否有一种方法可以在页面首次加载时以编程方
  • Firebase 身份验证在 iOS 登录时卡住,没有错误

    我已经使用电子邮件和密码设置了 firebase 身份验证登录的最基本实现 firebase auth signInWithEmailAndPassword email password then gt console log Logged
  • 如何在 javascript 中基于类型字符串创建新对象?

    如何基于变量类型字符串 包含对象名称 在 javascript 中创建新对象 现在我有 随着更多工具的出现 列表会变得更长 function getTool name switch name case SelectTool return n
  • Rails:找不到 JavaScript 运行时。有关可用运行时的列表,请参阅 https://github.com/sstephenson/execjs。 (ExecJS::运行时不可用)

    自从几周前 Dreamhost 升级了服务器以来 我的网站就被破坏了 我一直在努力解决它并取得了一些进展 但我仍然坚持希望是最后的问题 我在 Ruby 1 8 7 上使用 Rails 3 1 1 并收到来自 PhusionPassenger
  • @aspnet/signalr 与 @microsoft/signalr javascript 库

    aspnet signalr 与 microsoft signalr javascript 库有什么区别 两者似乎都对 DotNetCore SignalR 有效 两者似乎都很活跃 在一些教程中 我找到 aspnet signalr 在Do
  • 尝试使用 Firebug 查找 JavaScript 文件中的函数

    我试图找到这个函数调用 myFooBar 该函数在某些 HTML 中内联引用 但页面加载了大量 JavaScript 并且在每个文件中搜索该函数需要相当多的工作 如何使用 Firebug 找到此函数所在的 JavaScript 文件 打开脚
  • PHP 共享标头而不使用服务器端脚本?

    到目前为止我总是通过 PHP 解决简单的问题 您有一个包含页眉 菜单 页脚和内容字段的网站 每个页面的页眉 菜单和页脚通常是相同的 在没有 PHP 或任何其他服务器端语言的情况下 如何使页眉 菜单和页脚数据仅存在于一个文件中 例如 您不会有
  • Django 将 JSON 数据传递给静态 getJSON/Javascript

    我正在尝试从 models py 中获取数据并将其序列化为views py 中的 JSON 对象 模型 py class Platform models Model platformtype models CharField max len
  • 检测浏览器选项卡是否具有焦点

    是否有可靠的跨浏览器方法来检测选项卡是否具有焦点 场景是 我们有一个定期轮询股票价格的应用程序 如果页面没有焦点 我们可以停止轮询并为每个人节省流量噪音 特别是当人们喜欢打开具有不同投资组合的多个选项卡时 Is window onblur
  • 如何:带有 onclick 的 div 位于另一个带有 onclick 的 div 中

    只是一个简单的问题 我遇到了 div 与 onclick javascript 之间的问题 当我点击内部 div 时 它应该只触发它的 onclick javascript 但外部 div 的 javascript 也会被触发 用户如何点击
  • 用javascript调用外部网页(跨域)

    我正在尝试使用以下网络服务来验证提要这个问题 https stackoverflow com questions 11996430 check if a url is a valid feed 但浏览器不允许我向另一台服务器发送 ajax

随机推荐

  • 计算机运行慢提速小技巧,教你为Win7系统加速的五个技巧

    在我们使用电脑久了之后 不少用户就会发现系统的运行速度变慢了好多 这有可能是因为电脑使用久了之后电脑里面就会残余有一些垃圾文件 过多的垃圾文件占用了系统盘就会影响电脑的运行速度 那么用户可以选择使用第三方软件对电脑进行优化之外 还可以选择对
  • Python 接口并发测试详解

    一 接口并发测试简介 1 性能测试简介 性能测试是通过自动化测试工具模拟多种正常 峰值及异常负载条件对系统的各项性能指标进行的测试 负载测试和压力测试都属于性能测试 两者可以结合进行 通过负载测试 确定在各种工作负载下系统的性能 目标是测试
  • 发现新大陆

    csdn很久没有发博客了 当发现博客园可以进行一些骚操作之后 而CSDN又存在很多限制 相比较下 毅然选择了博客园 博主博客园首页链接地址 https www cnblogs com twq46 如果有想继续看博主的分享可以访问该链接
  • python opencv卡尺测量边缘距离

    opencv 卡尺法 测量边缘距离 参考来源 https github com crackwitz metrology demo 前言 一 测量方法 二 测量步骤 1 获取直线的像素 2 高斯滤波平滑曲线 3 计算跳变幅度值 4 计算距离值
  • 赶上ChatGPT的车,百度文心一言和阿里通义千问上线

    百度 文心一言 地址 https yiyan baidu com 阿里 通义千问 地址 https tongyi aliyun com 以下介绍来自官方 一 文心一言 介绍 你好 我是文心一言 ERNIE Bot 作为一个人工智能语言模型
  • Web3领域中最值得关注的3大主题

    这是白话区块链的第1792期原创 作者 Tony编译 火火出品 白话区块链 ID hellobtc 2014年 以太坊联合创始人加文 伍德 Gavin Wood 提出Web 3 0概念 将其描述为一种全新的互联网运行模式 用户自己发布 保管
  • Default Activity not found解决方法

    项目场景 最近开始学习Android 第一次尝试建立一个空白项目 手动添加activity时出现报错 Default Activity not found 问题描述 运行时程序可以正常编译 但不能发布到AVD上 查看了几篇博文 发现这篇方法
  • 2021ccpc女生赛(山东淄博)

    G 3G网络 K 音乐游戏 D 修建道路 A 公交线路 I 驾驶卡丁车 C 连锁商店 补题链接 这一次的开题顺序有点不好 G这个最简单的题目一开始没有开出来 然后开了另一个结果题目有点一个点读漏了 然后就做的复杂了一点 虽然a了 同是五道题
  • 对象的初始化和清理(构造和析构函数)

    对象的初始化和清理 1 1 构造函数 1 1 1 没有返回值 没有void 类名相同 可以发生重载 1 2 构析函数 1 2 1 没有返回值 没有void 函数名称 类名 不可以发生重载 不可以有参数 1 3 系统会默认调用 构造函数和析构
  • Javascript 使用js文件引入其他js文件

    注 js无法像php文件引入其他php文件到当前文件那样 require b php 只能通过html的标签通过url引入到html页面 当前js文件中添加 var scripts document getElementsByTagName
  • express脚手架安装和使用,node添加跨域处理

    前言 node的脚手架 express generator 的安装和使用 安装 步骤一 全局安装脚手架 npm i express generator g cnpm i express generator g 可以运行命令 express
  • el-select el-option未回显选中或显示value值

    现象描述 el select组件在数据回显时 未选中默认值 如下图所示 问题分析 很有可能是由于数据类型不一致导致的 比如后台接口返回的字段类型为int 但前端el option设置的value为String类型 因此只需要对后台接口返回的
  • 包含函数体的 INLINE 不是一种好的实践

    前几天碰到了一个很奇怪地错误 wmemcpy 已经定义在 A obj 中 经过查看头文件 wchar h 发现是一个有函数体的 inline 函数 可以看出上面的错误 是由于 inline 编译未生效导致的 经搜索需要开启优化级别 o2 才
  • 【实践经验】pip更改源加速下载

    目录 国内镜像 临时使用国内镜像 永久更换软件镜像 pip的默认源在安装软件包的时候非常慢 因此可以考虑使用国内的镜像加速下载和安装 在使用国内镜像的时候分为两种方式 1 临时使用镜像源 2 永久切换镜像 国内镜像 国内的镜像主要有以下几个
  • ubuntu16.04cuda10.0卸载、安装、查看版本信息

    一 Ubuntu16 04查看CUDA和CUDNN版本 1 cuda一般安装在 usr local cuda 路径下 该路径下有一个version txt文档 里面记录了cuda的版本信息 cat usr local cuda versio
  • 2023 LIGHTGBM 深度学习方法使用简易教程 入坑向

    一 需求背景及问题 项目要求使用LIGHTGBM进行本地数据的回归处理预测并要求做出Factors Importance的可视化处理 二 使用详情 1 LIGHTGBM框架使用目的 使用LIGHTGBM处理factors数据并作出regre
  • DBA思考方式感悟

    author skate time 2012 07 21 DBA思考方式感悟 某某牛人为什么能想到那么绝妙的方法 某某人为什么那么聪明 这样的话大家都听过 有时想想大家先天素质都差不多 那就是后天人家爱思考 知道如何思考 于是聊聊如何让自己
  • 注意力机制Attention详解

    注意力机制Attention详解 一 前言 2018年谷歌提出的NLP语言模型Bert一提出 便在NLP领域引起热议 之所以Bert模型能够火出圈 是由于Bert模型在NLP的多项任务中取得了之前所有模型都不能达到的出色效果 那么Bert模
  • upload-labs通关(Pass-11~Pass-15)

    目录 Pass 11 Pass 12 Pass 13 Pass 14 Pass 15 Pass 11 什么鬼 我都做好了上传不成功的准备 结果sh php居然上传成功了 一看Response报文 果然事情没有这么简单 后端自动把文件名中的p
  • JS基础知识-ECMAScript

    目录 1 1 基本语法 1 2 基本对象 JavaScript 概念 一门客户端脚本语言 运行在客户端浏览器种 每一个浏览器都有JavaScript的解析引擎 脚本语言 不需要编译 直接就可以被浏览器解析执行了 功能 可以来增强用户和htm