前端JS学习(一)

基础

JavaScript书写位置

1、行内 JavaScript
  通常放在文档结尾的 < / b o d y > </body> </body> 上面
  将 < s c r i p t > <script> <script>放在HTML文件的底部附近是因为浏览器会按照代码在文件中的顺序加载HTML。
2、内部JavaScript
  代码写在标签内部。
3、外部」avaScript
  代码写在以 .js 结尾的文件里,通过script标签,引入到html页面中。

JavaScript输出语法

输出语法:
 语法1:
  document.write(‘要出的内容’)
  作用:向body内输出内容
 语法2:
  alert(‘要出的内容’)
  作用:页面弹出警告对话框
 语法3:
  console.log(‘控制台打印’)
  作用:控制台输出语法,程序员调试使用
  换行输出:’ < br > ’

JavaScript输入语法

输入语法:
  语法:prompt(‘请输入您的姓名:’)
  作用:显示一个对话框,对话框中包含一条文字信息,用来提示用户输入文字

变量

  语法:let 变量名 = 值
  多个变量中间用逗号隔开,但并不推荐这样。通常为了更好的可读性,一行只声明一个变量。
在avaScript中,根据作用域的不同,变量可以分为:全局变量、局部变量
  全局变量:函数外部1et 的变量
  函数内部1et 的变量
全局变量在任何区域都可以访问和修改,局部变量只能在当前函数内部访问和修改。
访问原则:在能够访问到的情况下先局部,局部没有在找全局

数组

  语法:1et 数组名=[数据1,数据2,…·,数据n]
  数组是按顺序保存,所以每个数据都有自己索引号

常量

  当某个变量永远不会改变时,可使用const来声明一个“常量”。
  语法:const 变量名 = 值
  注意:常量不允许重新赋值,声明的时候必须赋值(初始化)

数据类型

JS数据类型整体分为两大类:基本数据类型、引用数据类型
基本数据类型:
  number 数字型
  string 字符串型
  boolean 布尔型
  undefined 未定义型
  null 空类型

引用数据类型
  object对象

  number 数字型

  number 数字型可以进行算术运算操作,主要包括加、减、乘、除、取余(求模)。>+: 求和、-: 求差、*: 求积、/: 求商、%: 取模(取余数)
  算术运算符优先级:先乘除取余,后加减,有括号先算括号
  NaN代表一个计算错误。它是一个不正确的或者一个未定义的数学操作所得到的结果。任何对NaN的操作都会返回NaN。

  string 字符串型

通过单引号(“)、双引号(”)或反引号(')包裹的数据都叫字符串,单引号和双引号没有本质上的区别,推荐使用单引号。
.
字符串拼接:+运算符可以实现字符串的拼接(数字相加,字符相连)
.
注意事项:
  1.无论单引号或是双引号必须成对使用
  2.单引号/双引号可以互相嵌套,但是不以自已嵌套自已
  3.必要时可以使用转义符\,输出单引号或双引号

模板字符串:拼接字符串和变量
  语法:内容用反引号``,内容中的变量用(美元符号+{})包住
  例: 在这里插入图片描述

boolean 布尔型

布尔类型数据表示真或假,它只有true和false两个固定的值。

未定义类型(undefined)

未定义是比较特殊的类型,只有一个值undefined。未定义类型是弱数据类型,声明一个变量未赋值就是undefined(只声明变量,不赋值)

nul(空类型)

JavaScript中的null仅仅是一个代表“无”、"空”或“值未知”的特殊值。undefined表示没有赋值,而null表示赋值了,但是内容为空。nul作为尚未创建的对象,即将来有个变量里面存放的是一个对象,但是对象还没创建好,可以先给个null。

检测数据类型

JavaScript中可以通过typeof关键字检测数据类型,支持两种语法形式:
  作为运算符:typeof ×(常用的写法)
  函数形式:typeof(x)
在这里插入图片描述

类型转换

JavaScript是弱数据类型,在使用表单、prompt获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算,需要转换变量的数据类型。类型转换,就是把一种数据类型的变量转换成我们需要的数据类型。

隐式转换

隐式转换:某些运算符被执行时,系统内部自动将数据类型进行转换。缺点是转换类型不明确。
 规则:
  +号两边只要有一个是字符串,都会把另外一个转成字符串, - * / 等都会把数据转成数字类型。任何数据和字符串相加结果都是字符串。
在这里插入图片描述

显式转换

为了避免因隐式转换带来的问题,通常根逻辑需要对数据进行显示转换。
显式转换明确告诉系统该转成什么类型。
转换为数字型:Number(数据)
       只保留整数:parselnt(数据)
       可以保留小数:parseFloat(数据)

运算符

赋值运算符:对变量进行赋值的运算符
赋值运算符:=将等号右边的值赋予给左边,要求左边必须是一个容器
其他赋值运算符:
  +=
  *=
  /=
  %=

一元运算符:
 JavaScript运算符可以根据所需表达式的个数,分为一元运算符、二元运算符、三元运算符
  自增:++
  自减:–
注意:前置自增和后置自增单独使用没有区别
let num=1 num++, ++num
其作用都相当于 num+=1
.
注意:前置自增和后置自增如果参与运算就有区别
  前置自增:先自加再使用(记忆口决:++在前先加)
  后置自增:先使用再自加(记忆口诀:++在后后加)
在这里插入图片描述

比较运算符:
在这里插入图片描述

逻辑运算符:解决多重条件判断
 怎么判断一个变量um是否大于5且小于10?
  错误写法:5<num<10
  正确写法:num > 5 && num < 10
在这里插入图片描述

运算符优先级:
在这里插入图片描述

分支语句

i f if if 语句
if 语句有三种结构:单分支、双分支、多分支
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三元运算符
在这里插入图片描述

switch语句
switch case语句一般用于等值判断,不适合于区间判断,switch case一般需要配合break关键字使用,没有break会造成case穿透

在这里插入图片描述

循环语句

while 循环:
在这里插入图片描述
while循环需要具备三要素:
  1.变量起始值
  2.终止条件(没有终止条件,循环会一直执行,造成死循环)
  3.变量变化量(用自增或者自减)
在这里插入图片描述

for 循环:
在这里插入图片描述
例子:
在这里插入图片描述
当如果明确了循环的次数的时候推荐使用for循环
当不明确循环的次数的时候推荐使用while循环

数组

数组(Array):是一种可以按顺序保存多个数据的数据类型
  定义1:1et 数组名=[数据1,数据2,··,数据n]
  定义2:1et 数组名=new Array(数据1,数据2,··,数据n)

操作数组
在这里插入图片描述
.
新增
  数组名. push():将一个或 多个元素添加到数组的末尾,并返回该数组的新长度(重点)
  数组名.unshift() :将一个或多个元素添加到数组的开头,并返回该数组的新长度
.
删除
  数组名. pop() :从数组中删除最后一个元素,并返回该元素的值
  数组名. shift() :从数组中删除第一个元素,并返回该元素的值
  数组名. splice(start,deleteCount) :删除指定元素。start 指定修改的开始位置(从0计数),deleteCount:要移除的数组元素的个数,可选。如果省略则默认从指定的起始位置删
除到最后。
.
数组排序
数组名. sort() 方法可以排序,从小到大
升序:arr.sort(function (a,b){ return a-b})
降序:arr.sort(function (a,b){ return b-a})

函数

函数:是被设计为执行特定任务的代码块,可以实现代码复用,提高开发效率。
.
无参函数定义:function 函数名(){ 函数体 }
无参函数调用:函数名()
. . .
函数名命名规范:
  尽量小驼峰式命名法
  前缀应该为动词
  例:function getName( ){ }
.
参数函数定义:function 函数名(参数){ 函数体 }
参数函数调用:函数名(参数)
用户不输入实参,可以给形参默认值,默认值只会在缺少实参参数传递时才会被执行,所以有参数会优先执行传递过来的实参。
.
当函数需要返回数据出去时,用return关键字
语法:return 数据
.
函数可以分为:具名函数、匿名函数在这里插入图片描述
匿名函数,是没有名字的函数,无法直接使用。使用方式:函数表达式、立即执行函数。
1、函数表达式:将匿名函数赋值给一个变量,并且通过变量名称进行调用
在这里插入图片描述
2、立即执行函数:避免全局变量之间的污染
注意:多个立即执行函数要用;隔开,要不然会报错在这里插入图片描述

对象

对象(object):JavaScript里的一种数据类型,可以理解为是一种无序的数据集合,用多个变量保存则比较散,用对象比较统一。有静态特征=>可以使用数字,字符串,数组,布尔类型等表示、动态行为=>使用函数表示。
.
对象声明
1、:1et 对象名={ }
2、:let 对象名=new Object()
.
对象由属性和方法组成
  属性:信息或叫特征(名词)。属性都是成对出现的,包括属性名和值,它们之间使用英文:分隔,多个属性之间使用英文,分隔
  方法:功能或叫行为(动词)
.
对象属性操作
在这里插入图片描述
对于多词属性或则“—"等属性,点操作就不能用了。采取:对象[‘属性’]方式,单引号和双引号都阔以
在这里插入图片描述
.
对象方法操作
方法是由方法名和函数两部分构成,它们之间使用:分隔
在这里插入图片描述
.
遍历对象
在这里插入图片描述
.
内置对象-Math
Math对象是JavaScript提供的一个“数学”对象,提供了一系列做数学运算的方法
在这里插入图片描述

Array对象

Array对象是用来定义数组的。常用语法格式有如下2种:
 var 变量名 = new Array(元素列表);
 var 变量名 = [ 元素列表 ];

  数组定义好了,该如何获取数组中的值呢?和java中一样,需要通过索引来获取数组中的值。语法如下:

arr[索引] = 值;

<script>
	//定义数组
	var arr = new Array(1,2,3,4);
	var arr = [1,2,3,4];
	
	//获取数组中的值,索引从0开始计数
	console.log(arr[0]);
	console.log(arr[1]);
</script>

  与 java 中不一样的是,JavaScript 中数组相当于 java 中的集合,数组的长度是可以变化的。而且 JavaScript 是弱数据类型的语言,所以数组中可以存储任意数据类型的值。

  Array 的属性和方法

属性描述
length设置或返回数组中元素的数量。

  length属性可以用来获取数组的长度,所以可以借助这个属性,来遍历数组中的元素

<script>
	var arr = [1,2,3,4];
	for (let i = 0; i < arr.length; i++) {
		console.log(arr[i]);
	}
</script>

  
  

方法描述
forEach()遍历数组中的每个有值得元素,并调用一次传入的函数
push()将新元素添加到数组的末尾,并返回新的长度
splice()从数组中删除元素

  forEach()方法,顾名思义,这是用来遍历的。这个函数接受一个参数,就是遍历时数组的值。

<script>
	var arr = [1,2,3,4];
	arr.forEach(function(e){
		console.log(e);
	})

	// 在ES6中,引入箭头函数的写法,语法类似java中lambda表达式
	arr.forEach((e) => {
		console.log(e);
	})
</script>

  
  
  push()函数是用于向数组的末尾添加元素的,其中函数的参数就是需要添加的元素

<script>
	var arr = [1,2,3,4];
	//push: 添加元素到数组末尾
	arr.push(7,8,9);
</script>

  
  
  splice()函数用来数组中的元素,函数中填入2个参数。参数1:表示从哪个索引位置删除,参数2:表示删除元素的个数
  如下代码表示:从索引2的位置开始删,删除2个元素

<script>
	var arr = [1,2,3,4];
	//splice: 删除元素
	arr.splice(2,2);
</script>

String对象

String对象的创建方式有2种:
  var 变量名 = new String(“…”) ; //方式一
  var 变量名 = “…” ; //方式二

属性描述
length字符串的长度。

  
  

方法描述
charAt()返回在指定位置的字符。
indexOf()检索字符串。
trim()去除字符串两边的空格
substring()提取字符串中两个指定的索引号之间的字符。

  

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>JS-对象-String</title>
</head>

<body>
</body>

<script>
//创建字符串对象
	//var str = new String("Hello String");
	var str = "  Hello String   ";
	console.log(str);
	
	//length
	console.log(str.length);
	
	//charAt
	console.log(str.charAt(4));
	
	//indexOf
	console.log(str.indexOf("lo"));
	
	//trim
	var s = str.trim();
	console.log(s.length);
	
	//substring(start,end) --- 开始索引, 结束索引 (含头不含尾)
	console.log(s.substring(0,5));
</script>

</html>

JSON对象

  在 JavaScript 中自定义对象特别简单,其语法格式如下:

var 对象名 = {
	属性名1: 属性值1,
	属性名2: 属性值2,
	属性名3: 属性值3,
	函数名称: function(形参列表){}
};

// 通过如下语法调用属性:
对象名.属性名
对象名.函数名()
var user = {
	name: "Tom",
	age: 10,
	gender: "male",
	
	eat: function(){
		console.log("用膳~");
	}
	
	// 函数定义的语法可以简化
	eat(){
		console.log("用膳~");
	}
}

  
  JSON对象:JavaScript Object Notation,JavaScript对象标记法。是通过JavaScript标
记法书写的文本。其格式如下:

{
	"key":value,
	"key":value,
	"key":value
}

其中,key必须使用引号并且是双引号标记,value可以是任意数据类型。
  

var jsonstr = '{"name":"Tom", "age":18, "addr":["北京","上海","西安"]}';

//  将json字符串转换为json对象
var obj = JSON.parse(jsonstr);

// 将json对象转换成json字符串
JSON.stringify(obj)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值