前端基础之JavaScript

一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:

● 核心(ECMAScript) ------------>基础语法---------->必须要会的
● 文档对象模型(DOM) Document object model (整合js,css,html)----------->重要
● 浏览器对象模型(BOM) Broswer object model(整合js和浏览器)------------>不重要

JavaScript引入方式

1.书写位置
	# js文件
	# 浏览器控制台
	# script标签
2.注释(注释是代码之母:快捷键:ctrl + ?(单行), 多行的(ctrl+shift+?))

3.结束符
JavaScript中的语句要以分号(;)为结束符。

4. 变量声明
	es5:
		var name = 'kevin';
	es6:
		let name='kevin'
5. 变量的命名
	# 基本上遵循python的变量命名规则即可
	# 下划线、驼峰体、大驼峰、小驼峰
6. 常量
	# python没有真正意义上的常量,全大写就是常量
	# js中有真正意义上的常量,一旦声明,其值就不能轻易改变
	# 如何定义常量
		const pi = 3.14

JavaScript数据类型

JavaScript也是一门面向对象的语言,一切皆对象
查看数据类型:typeof
	console.log(type of)

数值(Number)

var a=1;
var b=2.2;
整数和小数都为数值,还有一种NaN,表示不是一个数字

字符串(string)

var a = "Hello"
var b = "world;
var c = a + b; 
console.log(c);  // 得到Helloworld
# 拼接字符串一般使用“+”

1. 常用方法
	.length				返回长度
	.trim()				移除空白
	.trimLeft()			移除左边的空白
	.trimRight()			移除右边的空白
	.charAt(n)			返回第n个字符
	.indexOf(substring, start)	子序列位置
	.substring(from, to)		根据索引获取子序列
	.slice(start, end)		切片
	.toLowerCase()			小写
	.toUpperCase()			大写
	.split(delimiter, limit)	分割
	
2.ES6中引入了模板字符串。
	模板字符串(template string)是增强版的字符串,用反引号(`)标识。
	它可以当做普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。
	var name = "jason", time = "today";
	`Hello ${name}, how are you ${time}?`

布尔值

""(空字符串)、0、null、undefined、NaN都是false。
# null和undefined
	● null表示值是空,一般在需要指定或清空一个变量时才会使用,如 name=null;
	● undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined。还有就是函数无明确的返回值时,返回的也是undefined。

数组(也就是列表)

常用方法:
方法					说明
.length					数组的大小
.push(ele)				尾部追加元素
.pop()					获取尾部的元素
.unshift(ele)				头部插入元素
.shift()				头部移除元素
.slice(start, end)			切片
.reverse()				反转
.join(seq)				将数组元素连接成字符串
.concat(val, ...)			连接数组
.sort()					排序
.forEach()				将数组的每个元素传递给回调函数
.splice()				删除元素,并向数组添加新元素。
.map()					返回一个数组元素调用函数处理后的值的新数组

运算符

算术运算符

+ - * / % ++ --

eg:
	var x=10;
	var res1=x++;
	var res2=++x;

	res1;
	10
	res2;
	12

这里由于的x++和++x在出现赋值运算式,x++会先赋值再进行自增1运算,而++x会先进行自增运算再赋值!

比较运算符

> >= < <= != == === !==
# ===(强等于,即比较数值,又比较类型)

逻辑运算符

&&(and)
||(or) 
!(not)

复制运算符

= += -= *= /=

流程控制

if-else

var a = 10;
if (a > 5){
  console.log("yes");
}else {
  console.log("no");
}
if-else if-else 
var a = 10;
if (a > 5){
  console.log("a > 5");
}else if (a < 5) {
  console.log("a < 5");
}else {
  console.log("a = 5");
}

switch

var day = new Date().getDay();
switch (day) {
  case 0:
  console.log("Sunday");
  break;
  case 1:
  console.log("Monday");
  break;
default:
  console.log("...")
}
switch中的case子句通常都会加break语句,否则程序会继续执行后续case中的语句。

for

for (var i=0;i<10;i++) {
  console.log(i);
}

while

var i = 0;
while (i < 10) {
  console.log(i);
  i++;
}

三元运算

var a = 1;
var b = 2;
var c = a > b ? a : b
//这里的三元运算顺序是先写判断条件a>b再写条件成立返回的值为a,条件不成立返回的值为b;三元运算可以嵌套使用;
var a=10,b=20;
var x=a>b ?a:(b=="20")?a:b;

==>x=10

内置对象和方法

Date对象

var d = new Date(); 
//getDate()                 获取日
//getDay ()                 获取星期
//getMonth ()               获取月(0-11)
//getFullYear ()            获取完整年份
//getYear ()                获取年
//getHours ()               获取小时
//getMinutes ()             获取分钟
//getSeconds ()             获取秒
//getMilliseconds ()        获取毫秒
//getTime ()                返回累计毫秒数(从1970/1/1午夜)

JSON对象

var str1 = '{"name": "Alex", "age": 18}';
var obj1 = {"name": "Alex", "age": 18};

// JSON字符串转换成对象
var obj = JSON.parse(str1); 
// 对象转换成JSON字符串
var str = JSON.stringify(obj1);

REFEXP对象(正则对象)

// 定义正则表达式两种方式
var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}");
var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/;

// 正则校验数据
reg1.test('jason666')
reg2.test('jason666')

/*第一个注意事项,正则表达式中不能有空格*/ 

// 全局匹配
var s1 = 'egondsb dsb dsb';
s1.match(/s/)
s1.match(/s/g)
var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/g
reg2.test('egondsb');
reg2.test('egondsb');
reg2.lastIndex;
/*第二个注意事项,全局匹配时有一个lastIndex属性*/

// 校验时不传参数
var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/
reg2.test();
reg2.test(undefined);

var reg3 = /undefined/;
reg3.test();

Math 对象

abs(x)      返回数的绝对值。
exp(x)      返回 e 的指数。
floor(x)    对数进行下舍入。
log(x)      返回数的自然对数(底为e)。
max(x,y)    返回 x 和 y 中的最高值。
min(x,y)    返回 x 和 y 中的最低值。
pow(x,y)    返回 x 的 y 次幂。
random()    返回 0 ~ 1 之间的随机数。
round(x)    把数四舍五入为最接近的整数。
sin(x)      返回数的正弦。
sqrt(x)     返回数的平方根。
tan(x)      返回角的正切。
posted @ 2023-07-24 15:57  苙萨汗  阅读(37)  评论(0)    收藏  举报