JavaScript学习笔记

在这里插入代码片提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

JavaScript学习笔记

  • 一、解释型语言和编译型语言
    • 1、概述
    • 2、执行过程
  • 二、标识符、关键字、保留字
    • 1.标识符
    • 2.关键字
    • 3、保留字
  • 三、算数运算
    • 1、如何判断一个是为整数?
    • 2、前置递增运算符:
    • 3、后置递增运算符:
  • 四、逻辑运算
    • 1、短路运算(逻辑中断):
  • 五、流程控制
  • 六、数字补0案例
  • 七、九九乘法表案例
  • 八、js隐式转化
  • js基础


一、解释型语言和编译型语言

1、概述

JavaScript学习笔记_第1张图片
翻译器翻译的方式有两种:一个是编译,另一个是解释两种方式之间的区别在于编译的时间点不同
编译器是在代码执行之前进行编译,生成中间代码文件
解释器是在运行是进行及时解释,并立即执行(当编译器以解释方式运行的时候,也称之为解释器)

2、执行过程

JavaScript学习笔记_第2张图片

二、标识符、关键字、保留字

1.标识符

标识(zhi)符:开发人员为变量、属性、函数、参数取得名字

标识符不能是关键字或保留字。

2.关键字

关键字:是指JS本身已经使用了的字,不能再用它们充当变量名、方法名。
包括:break、case、catch、continue、default、delete、do、else、finally、for、funtion、if、in、instanceof、new、return、switch、this、throw、try、typeof、var、void、white、with等。

3、保留字

保留字:保留字∶实际上就是预留的“关键字”,意思是现在虽然还不是关键字,但是未来可能会成为关键字,同样不能使用它们当变量名或方法名。
包括:包括: boolean、byte、char、class、const、debugger、double、enum、export、extends、fimal、float、goto、implements、import、int、interface、long、mative、package.volatile等。

三、算数运算

1、如何判断一个是为整数?

余数为0就说明这个数能被整除,这就是 **%**取余运算的主要用途

2、前置递增运算符:

++num 前置递增,就是自加1,类似于 num= num+1
使用口诀:先自加,后返回值

3、后置递增运算符:

num++ 后置递增,就是自加1,类似于 num= num+1
1.前置自增很后值自增如果单独使用效果是一样的
2.后置自增口诀:先返回原值,后自加1

var num = 10;
num++ //num=num+1   等同于 ++num
console.log(num)  //11
var age = 10;
console.log(age++ +10)  /先返回原值10,再跟10相加得: 20
console.log(age)  //11

四、逻辑运算

1、短路运算(逻辑中断):

**短路运算原理:**当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值;
1.逻辑与(逻辑中断)
语法:表达式1 && 表达式2
如果第一个表达式的值为真,则返回表达式2
如果第一个表达式的值为假,则返回表达式1
JavaScript学习笔记_第3张图片
2.逻辑或(逻辑中断)很重要哦
语法:表达式1 && 表达式2
如果第一个表达式的值为真,则返回表达式1
如果第一个表达式的值为假,则返回表达式2
JavaScript学习笔记_第4张图片

五、流程控制

结构图:
JavaScript学习笔记_第5张图片

六、数字补0案例

使用三元运算符
代码如下(示例):

var time propmt('请输入一个数字');
var result = time < 10 ? '0' + time : time;
alert(result)

七、九九乘法表案例

代码如下(示例):

//九九乘法表
//一共有9行,但是每行的个数不一样,因此需要用到双重for循环
//外层的for循环控制行数9次,可以打印9行
//内层的for循环控制每行公式j
//核心算法:每一行公式的个数正好和行数一致,j<=i;
//每行打印完毕,都需要重新换一行

var str = '';
for(var i=1; i<=9; i++){
     
	for(var j=1; j<=i; j++){
     
		//1×1=1
		//str= str+'⭐';
		str+= j + '×' + i + '=' + i * j + '\t';
	}
	str += '\n';
}
console.log(str)

八、js隐式转化

数组转换成字符串,代码如下(示例):

//将数组['red','green','blue','pink']转换成字符串,并用 | 或者其他符号分割
//1.需要一个新变量用来存放转换后的字符串 str
//2.遍历原来的数组,分别把里面的数据取出来,加到字符串里面
//3.同时在后面多加一个分隔符
var arr = ['red','green','blue','pink'];
var str = '';
var sep = '\';
for(var i=0; i<arr.length; i++){
     
str += arr[i] + sep
}
console.log(str)

筛选数组方法1,代码如下(示例):

//将数组[2,7,45,64,0,1,6]中大于等于10的元素筛选出来,放入新数组
//1.声明一个新的数组用来存放新数据 newArr
//2.遍历原来的旧数组,找出大于等于10的元素
//3.依次追加给新数组 newArr
var arr = [2,7,45,64,0,1,6];
var newArr= [];
var j = 0;
for(var i=0; i<arr.length; i++){
     
 if(arr[i]>=10){
     
 newArr[j] = arr[i];
 j++;
 }
}
console.log(newArr)

筛选数组方法2,代码如下(示例):

//将数组[2,7,45,64,0,1,6]中大于等于10的元素筛选出来,放入新数组
//1.声明一个新的数组用来存放新数据 newArr
//2.遍历原来的旧数组,找出大于等于10的元素
//3.依次追加给新数组 newArr
var arr = [2,7,45,64,0,1,6];
var newArr= [];
for(var i=0; i<arr.length; i++){
     
 if(arr[i]>=10){
     
 //新数组的索引号应该是从0开始,依次递增
 newArr[newArr.length] = arr[i]
 }
}
console.log(newArr)

翻转数组,代码如下(示例):

//将数组['red','green','blue','pink','purple']的内容反过来存放
//1.声明一个新数组用来存放新数据 newArr
//2.遍历原来的旧数组,找出大于等于10的元素
//3.依次追加给新数组 newArr
var arr = ['red','green','blue','pink','purple'];
var newArr= [];
for(var i=arr.length-1; i>=0; i--){
     
 newArr[newArr.length] = arr[i]
 }
}
console.log(newArr)

冒泡排序,代码如下(示例):
JavaScript学习笔记_第6张图片

//冒泡排序
var arr = [4,3,5,1,2,8,6,7];
for(var i=0; i<=arr.length-1; i++){
       //外部循环管躺数
	for(var j=0; j<= arr.length-i-1){
      //内部循环管每一趟的交换次数
		//内部交换两个数的值,前一个和后一个元素进行相比较
		if(arr[j] < arr[j+1]){
     
			var temp = arr[j];
			arr[j] = arr[j+1];
			arr[j+1] = temp;
		}
	}
}

js基础

1.

let a = [1]
let b = a
console.log(a)  // 1
console.log(b)  // 1

b[0] = 2 
console.log(a) // 2
console.log(b) // 2

JavaScript学习笔记_第7张图片
这就是声明了一个数组a

JavaScript学习笔记_第8张图片
这是把a赋值给b,但是现在a和b指向同一个内存
JavaScript学习笔记_第9张图片
这样a是不是也变了
2.

let a = 'sss'
let b = a
console.log(a)  // sss
console.log(b)  // sss

b = 'xxx'
console.log(a) // sss
console.log(b) // xxx

JavaScript学习笔记_第10张图片
第二行 let b = a,这一行是把a的值复制一份再给b

而数组不会复制,就是把 [1] 在内存中的位置告诉了b

所以对于数组来说,a,b指向同一个值,但是字符串a,b各自有自己的值

你可能感兴趣的:(javascript)