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

第2章 JavaScript语法

准备工作

  • 编写js需要准备一个编译器和游览器,js必须通过HTML/XHTML文档编写

js的编写位置

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>...</script>
</head>
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><!--  外部引入js --><script src="./index.js"></script>		
</head>
<body>// 更为推荐的编写位置,这样能使浏览器更快地加载页面<script src="./index.js"></script>	
</body>

编程语言

  • 程序设计语言分为解释型和编译型两大类
  • 编译型语言需要一个编译器把语言编写出来的源代码翻译为直接在计算机上执行的文件。
  • 解释型语言需要一个解释器,对于js而言游览器中的JavaScript解释器将直接读入源代码并执行
  • 用编译型语言编写的代码有错误,这些错误在代码编译阶段就能被发现。而解释型语言代码中的错误只能等到解释器执行到有关代码时才能被发现。
  • 与解释型语言相比,编译型语言往往速度更快,可移植性更好,但它们的学习曲线也往往相当陡峭。

语法

语句

  • 只有按照正确的语法编写出来的语句才能得到正确的解释。
first statement;		// 语句最后最好加上;号

注解

  • 注解不会被JavaScript解释器去解释并执行,注解是给程序员看的
// 		// 单行注解,快捷键ctrl+/
/* */   // 多行注解,快捷键alt+shift+a

变量

  • 会变的事物叫做变量
a=10;	// 默认为var a=10
b=20;	// var b=20
  • 声明变量
// 方式一
var a;
var b;// 方式二
var a,var b;
  • 变量赋值
// 方式一
var a=10;
var b=20;// 方式二
var a=10,b=20;// 方式三
var a;
var b;
a=10;
b=20;
  • 变量区分大小写,必须由下划线和数字(不能再开头),字母组成,尽量遵循小驼峰命名法(首个字母小写后面大写),变量不能和关键字重名

数据类型

  • 必须声明数据类型的语言叫做强类型语言,不用声明的叫弱类型语言(js)
  • 弱类型语言意味着程序员可以在任意时刻改变变量的类型
var str="123";	// 字符串类型
str=33			// 数值类型

1. 字符串

  • 字符串可以用双引号和单引号声明
  • 如果字符串中要用引号遵循外双内单,外单内双
var str1="aaa";
var str2='bbb';

2. 数值

var a=10;
var b=-10;
var c=10.3;

3. 布尔值

var flag1=true;
var flag2=false;

4. 数组

  • js的数组能够存储多个不同类型的数据
  • 数组就是有序集合一般用数字表示索引
// 声明数组
var arr1=Array(4);	// 表示声明了一个长度为4的数组
var arr2=Array();	// 不确定长度声明
var arr3=[];			// 简写声明// 数组添加值,分别在第0个位置到第3个位置添加1
arr1[0]=1;
arr1[1]=true;
arr1[2]=1;
arr1[3]=1;
var ar2=Array(1,2,false,4);	// 自动匹配对应的位置并且添加值
arr3=[1,2,"123",false];		// 赋值

5. 对象

  • 对象就是无序集合一般用字符串表示索引
  • 数组和对象可以配合使用
// 声明对象
var obj1=Object();
var obj2={};// 对象赋值
obj1.name="zhangsan";
obj2={name:"zhangsan"};

操作

算数运算符

// 赋值运算符
var a=10;	
var b=20;// 基本运算符
a+b;	// 30
a-b; 	// -10
a*b;	// 200
a/b;	// 0.5;
a%b;	// 10;// 其他运算符用法类似
a+=1;	// a=11
...// 先用后变,先变后用
a++;
++a;
a--;
--a;// 字符串与运算符
var  str="123";str+321					// 123321
str+"true"					// 123true

比较运算符

  • 可以使用全等(===)来同时比较值和类型
var a=10;
var b=20;a==b	// false
a!=b	// true
a>=b	// false
a<=b	// true

逻辑运算符

var a=10;
var b=20;// 并且
a>=10&&b>=20	// true
a>=10&&b>20		// false// 或
a>=10||b>20		// true// 取反
!true			// false

条件语句

  • 选择一种满足条件的语句执行
  • if()里面必须是bool类型或者运算结果为bool类型
if(true){...
}else if(true){...
}else{...
}switch(num){case 1:...break;case 2:...break;default:...
}

循环语句

  • 满足条件会一直执行
while(true){...
}for(let i=1;i<=10;i++){...
}

函数

  • 用于封装常用的代码块,提高代码复用率
  • 全局作用域是可以在整个js文件中调用,局部作用域只能在函数中/代码块中调用,如果变量名相同遵循就近原则
// 定义函数
function add(a,b){return a+b;
}// 调用函数
var c=add(10,20)		// 30

对象

  • 对象中的成员可以是属性也可以是方法
	obj.name		// 通过.调用对象内部的属性obj.say()		// 通过.调用对象内部的方法
  • 内置对象,js内部已经定义好的对象
const arr=new Array()
arr.length		// 返回数组的长度const date=new Date()
data.getDay()	// 当前当日...
http://www.lryc.cn/news/102523.html

相关文章:

  • 【Golang】Golang进阶系列教程--为什么 Go for-range 的 value 值地址每次都一样?
  • 小研究 - JVM 垃圾回收方式性能研究(三)
  • java根据poi解析excel内容
  • 实验报告-Sublime配置默认语法,以配置Verilog语法为例
  • pve安装ikuai并设置,同时把pve的网络连接到ikuai虚拟机
  • Android 面试题 ANR 五
  • 实训笔记7.28
  • C 游游的二进制树
  • 收发存和进销存有什么区别?
  • 小程序 账号的体验版正式版的账号信息及相关配置
  • AIGC(Artificial Intelligence Generated Content)和 Web3对比,未来发展
  • 机器学习之Boosting和AdaBoost
  • 汇编语言预定义寄存器和协处理器
  • 【前缀和】974. 和可被 K 整除的子数组
  • linux页框回收之shrink_node函数源码剖析
  • 网络运维基础问题及解答
  • 【RabbitMQ】之保证数据不丢失方案
  • 插入排序算法
  • Linux标准库API
  • 腾讯云—自动挂载云盘
  • 为Win12做准备?微软Win11 23H2将集成AI助手:GPT4免费用
  • Opencv Win10+Qt+Cmake 开发环境搭建
  • Matlab实现光伏仿真(附上30个完整仿真源码)
  • JSON.stringify()与JSON.parse()
  • neo4j教程-安装部署
  • 网络面试合集
  • java+springboot+mysql智慧办公OA管理系统
  • 【教程】Tkinter实现Python软件自动更新与提醒
  • 音频深度学习变得简单:自动语音识别 (ASR),它是如何工作的
  • 反射简述