当前位置: 首页 > news >正文

js基础语法

语言

强类型语言:任何的变量,常量都需要归属于某一种数据类型,而且是先定义类型,后使用 。C,Java,C++,Objective-C

弱类型语言:数据有类型,但是变量没有类型。即存什么数据就是什么类型。JavaScript,php,python,swift

解释型语言:一行一行的执行,代码从上到下

程序

what:计算机程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具。

任何程序都是先有需求,然后根据需求写代码

做题步骤:

  • 先搞清楚需求
  • 根据需求理清思路
  • 写出解题步骤,即注释
  • 根据步骤做填空题

编程语言发展史

  1. 人工绳结

  2. 纸带穿孔:0没有孔,1有孔

  3. 机器语言:第一代计算机语言,0/1代码,计算机只能识别0和1。

  4. 汇编语言:将一串很枯燥无味的机器语言转化成一个英语单词

    ​ 缺点:可移植性贼差。编程的难度贼大

    ​ 优点:速度快

  5. 高级编程语言:可移植性强,易于学习。JDK 、Jre 运行环境,速度相对的变慢。

JavaScript

JavaScript跟Java没有关系

what

​ 一种具有函数优先轻量级解释型即时编译型的高级编程语言。是一种基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。也被应用到很多非浏览器环境中,如(Node.js)。

js:是运行于浏览器中客户端脚本编程语言,浏览器中js引擎。可以对我们的js代码进行解析,进而在浏览器中展示出我们想要的效果。

js引擎:js代码解析器

why

因为早期的网页只能看,非常不方便,数据验证、网页特效这些都没有,用户体验不好。

而JavaScript可以做到:

  • 客户端数据计算
  • 客户端表单合法性验证
  • 浏览器事件的触发
  • 浏览器对象的调用
  • 网页特殊显示效果制作

JavaScript的组成

  • ECMA的基本语法
  • DOM(document object model 文档对象模型) 编程
  • BOM(brower object model 浏览器对象模型) 编程

JavaScript基本语法

引入(script)

页内脚本

可以将“ script ”标签写在页面内的任意处,且可写任意个。但推荐写在 “ body ” 闭合标签的上方。

因为JS是解释型语言,自上而下编译,所有代码的执行顺序也是自上而下的,如果js代码中有操作html标签的代码,此时把js写在head中,当js执行时,html标签还没有被加载到,此时会出现问题

<!DOUTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script type="text/javascript">
        
        </script>
    </head>
    <body>
        <script>
        
        </script>
    </body>
</html>
外部脚本

引入外部的js文件,引入外部js文件后,将路径写入script标签中,而标签内就不能写js代码了

<script src="url"></script>

注释

  • 单行注释://
  • 多行注释:/* */

变量

what:是计算机语言中能储存计算结果或能表示值的抽象概念

变量可以通过变量名访问

定义和使用
var a=5;

var : 定义变量的关键字,只要浏览器中的js引擎读取到 var 这个关键字,浏览器引擎就知道要定义变量。
a :变量的名字 
	变量的命名规范:
		硬性规范:1.必须以 字母 _  $ 开头
				2.组成变量的字符之间不能有空格
				3. 不能以 关键字/保留字 作为变量的名字
				4.不能出现同名变量
		软性规范:1.英文有意义(语义化)
				 2.遵循小驼峰命名法

小驼峰方法命名:第一个单词首字母小写,以后每一个单词首字母大写

​ 变量名,方法名

大驼峰方法命名:每个单词首字母均大写

​ 类名,工程名

作用:代表数据,见名知意

输入输出语句

  • document.write(内容) :向文档中写入
  • prompt(‘提示文本’,默认值):带有输入框的弹出框,会把用户输入的值返回。输入的都是字符串类型
  • console.log(内容) :控制台输出
  • alert(内容) :弹框输出
  • confirm(‘提示文本’):带有确定和取消按钮的弹出框

数据类型

why:为了更好的模拟各种场景

基本(原始)数据类型
  • number:数字类型

  • string:字符串类型,只要是使用单引号或者双引号包括的内容均是 字符串类型

  • boolean:布尔值

  • null:空

    typeof null == object

  • undefined:未定义的

null和undefined区别:null表示此处不应该有值,undefined表示此处应该有值,但是没给

typeof 操作符:检测数据类型

引用(对象)数据类型
  • function
  • array
  • math

运算符

算数运算符

用于执行变量或值之间的算数运算

  • ’+‘ 加
  • ‘-’ 减
  • ‘*’ 乘
  • / 除
  • % 求余取模
  • ++ 累加
  • – 递减
赋值运算符

用于给js变量赋值

  • =
  • +=
  • -=
  • *=
  • /=
  • %=
比较运算符

在逻辑语句中使用,以测定变量或值是否相等

  • == 等于,比较的是值,不比较数据类型
  • === 全等 , 既比较值有比较数据类型
  • != 不等于
  • !== 不全等于
  • ‘>’ 大于
  • < 小于
  • ‘>=’ 大于等于
  • <= 小于等于
逻辑运算符

用于测定变量或值之间的逻辑

  • && and ,全真为真,一假为假
  • || or,一真为真,全假为假
  • ! not 取反
三目运算符

一目 :++ – 只需要一个数据就可以运算 一目运算符

二目: ±*/% += -=。。。 需要二个数据就可以运算 二目运算符

三目:需要三个数据就可以运算 三目运算符

格式:表达式1?表达式2:表达式3

  • 首先判断表达式1是否成立
  • 如果成立,结果就是表达式2
  • 如果不成立,结果就是表达式3

**注:**三目运算符中任何一个地方都可以 嵌套三目运算符,进行嵌套计算。

<script type="text/javascript">
			//三目 三元(表达式/数据)  需要三个表达式才可以运行
			let a = 10;
			let b = 50;
			let c = a < b ? (a == b ? a + b : a - b) : a / b;
			console.log(c)
		</script>

字符串参与拼接时的注意事项

‘+’ 运算符
  1. 正常使用,就是做数学运算

  2. 做拼接运算。(从左至右依次运算)

    只要参与运算的两个数据,有一个是字符串类型,那么此时进行拼接运算

  3. 做数据类型转换

    ‘+’ 变量 可以把字符串类型的数字转换成 number 类型

var a = 10 + "10" + 10 + 10;//10101010
			var b = 10 + 10 + '10' + 10;//201010
			var c = "10" + 10 + 10 + 10;//10101010
			console.log(a, b, c);
模板字符串( 反单引号 )

模板字符串:用反单引号包裹起来

模板字符串中可以写变量,不需要 ’ + ’ 拼接

${表达式} 大括号中可以直接写表达式,进行一些数学运算。

var d = 5;
console.log('我有'+d+'包烟');
console.log(`我有 ${d + 5} 包烟`);

数据类型转换

字符串转数
  • Number() 转纯数字类型

    ​ Number(‘5’) : 可以把 字符串类型的5 转变成 数字

    ​ Number(‘5dhiaof’) :结果为——NaN : not a number

    ​ Number(true) ===1

    ​ Number(false) ===0

    ​ Number(null) ===0

    ​ Number(undefined) ===NaN

  • parseInt() 可以把一个字符串中开头的数字部分提取出来——取整

    ​ parseInt(‘5hfancoi’) ====5

    ​ parseInt(true/false/null/undefined) ==NaN

  • parseFloat()取小数部分

  • ’ + ’

其余数据类型转字符串
  • 反单引号 :直接把一个数字与一个空字符串拼接 就可以 ${变量}
  • String(变量)
  • 变量.toString()

相关文章:

  • 前端监控与埋点
  • Three.js 入门(辅助、位移、父子关系、缩放旋转、响应式布局)
  • VC++零基础入门之系列教程 【附录E MFC快速参考指南】
  • 20250212:ZLKMedia 推流
  • Visual Studio Code 远程开发方法
  • C#从入门到精通(35)—如何防止winform程序因为误操作被关闭
  • 為什麼使用不限量動態住宅IP採集數據?
  • 2024-2025 学年广东省职业院校技能大赛 “信息安全管理与评估”赛项 技能测试试卷(四)
  • Redis详解
  • 为AI聊天工具添加一个知识系统 之122 详细设计之63 实体范畴论和神经元元模型:命名法函子
  • MySQL 入门“鸡”础
  • 如何查看PostgreSQL的版本
  • Java常见设计模式(中):结构型模式
  • 375_C++_cloud手机推送,添加人脸告警信息到任务队列中,UploadAlarmPush是典型的工厂模式应用,为什么使用工厂模式完成这部分代码
  • Python入门12:面向对象的三大特征与高级特性详解
  • 视频字幕识别和翻译
  • Python爬虫系列教程之第十六篇:代理IP池构建与管理策略
  • Dify安装教程:Linux系统本地化安装部署Dify详细教程
  • 深度剖析数据中台架构图,铸造数字文明的基石
  • SQL进阶实战技巧:汽车转向次数分析 | 真实场景案例
  • 特朗普与普京通话前夕,英美法德意领导人通话讨论俄乌问题
  • 上海徐汇 “家 + 书屋”,创新服务广大家庭
  • 广东信宜一座在建桥梁暴雨中垮塌,镇政府:未造成人员伤亡
  • 2025吉林市马拉松开跑,用赛道绘制“博物馆之城”动感地图
  • 种植耐旱作物、启动备用水源,甘肃各地多举措应对旱情
  • 国际博物馆日|航海博物馆:穿梭于海洋神话与造船工艺间