JavaScript学习笔记2

一、开始学习js

js三大部分ECMAScript、DOM、BOM

如何引入js?

1、页面内嵌<script></script>标签

写 head 里面也行,写 body 里面也行

<body>
	<script type="text/javascript"> //告诉浏览器我们是 js
	</script>
</body>

2、外部 js 文件

引入<script src=“location”></script>

例如:以 lesson.js 保存文件,再引入到 html 中

为符合 web 标准(w3c 标准中的一项)结构(html)、行为(js)、样式(css)相分离,通常会采用外部引入。

一个文件中可以包括多个 css,js——不混用
特殊写页面,大部分写在外部——不混用

如果同时写了内部的 js 和外部的 js,那么是外部的 js 文件显示出来

二、js 基本语法

1、变量(variable)

HTML,css 不是编程语言,是计算机语言,编程语言需要有变量和函数

变量是存放东西,方便后续使用的框

1)变量声明
1.声明、赋值分解
var a; 这个叫变量声明。我们向系统中申请了 var 这个框,命名叫 a 给 a 赋值 100,写作 a =100,这里不是等号是赋值
var a ;a =100;可以简化写成 var a=100;

在这里插入图片描述

2)命名规则(用接近的英文单词)———— 起变量名一定要以英文语义化

1.变量名必须以英文字母、_、$ 开头

2.变量名可以包括英文字母、_、$、数字

3.不可以用系统的关键字、保留字作为变量名

在这里插入图片描述

2、基本语法

下面是变量

例:
var a=10;
var b=20;
var c;
c=a+b;

先运算等号右边的a+b,运算完后,再赋值给左边c
先取值,再赋值

运算大于赋值的优先值

js是动态语言,动态语言基本上都是解释性语言,解释性语言基本都是脚本语言
js是浮点型语言(带小数点)

值类型(数据类型)

1、不可改变的原始值(栈数据)栈stack
Number,String,Boolean,undefined,null

已经放进去的值不可改变,只会改房间编号为null(硬盘原理)

Number数字,例var a= 123

String 字符串,语言放双引号里,例 var a=”语言”,““是空串
Boolean 布尔数字,就两个值,false,true

undefined 是没有定义的,表示还没赋值,仅一个值 underfined

null 代表空,占位用,用空值来覆盖

在这里插入图片描述



2、引用值(堆数据)大致上放堆 heap 里面 array 数组, Object, function ... data,RegExp

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

var arr = [1,2,3,4,5,false,”abc”]; //这是数组
例:var arr = [1];
var arr1 = arr;
arr.push(2);
document.write(arr1);

答案:arr 是 1,2。arr1 是 1,2

引用值是把第一个值放到第二个值里面,改第一个值,第二个值也改变

js 由值决定类型。原始值和引用值唯一的不同是赋值形式不同

在这里插入图片描述

var a = 10;
var b =a;
a=20;

是 a 先取出 10,copy 一份放到 b 里面,改变 a 的值,b 的值是不变的,再把 a=20;时 b 的值还是 10,不发生改变

var arr = [1,2];
var arr1 =arr;
arr.push(3);

答案:这往[1,2]放 3,arr 和 arr1 都是[1,2,3]

引用值是在栈内存里面放堆的地址,拷贝的也是地址,所以改变 arr,arr1 也变了

var arr = [1,2];
var arr1 =arr;
arr = [1,3];
document.write(arr1)

答案:arr = [1,3];是新建了一个新的房间。

arr1 是 1,2,现在是插入新引入值”房间”,会在堆里面重新申请一间房,并指向新房间

3、js 语句基本规则

1、语句后面要用分号结束“;”但 function test(){},for(){},if(){}后面都不用加分号

2、js 语法错误会引发后续代码终止,但不会影响其它 js 代码块

错误分为两种
1)低级错误(语法解析错误),不能写中文
2)逻辑错误(标准错误,情有可原,错的那个执行不了)
3、书写格式要规范,“= + / -”两边都应该有空格

三、运算符

3.1、运算操作符

+

1. “+”作用:数学运算、字符串链接
2.任何数据类型加字符串都等于字符串
var a = “a”+ true + 1; //打印 atrue1var a = 1 + “a” + 1 + 1; //打印 1a11var a = 1 + 1 + “a” + 1 + 1; //打印 2a11,从左向右运算var a = 1 + 1 + “a” +( 1 + 2); //打印 2a3

- * /

var a = 01//等于-1 例 var a = 2 * 1; //等于 2 例 var a = 0 / 0; //答案是 NaN,应该得出一个数字类型的数,但是没法表达,就用 NaN (NaN 是 Not a Number 非数,不是数,但是是数字类型var a = 1 / 0; //是 infinityvar a = -1 / 0; //是-infinity

%,摩尔,模,是取余数的意思

var a =5%2 //5%2 是五除二的余数,商二余一var a =5%1 //是五除一的余数,结果是 0 var num = 1 % 5; //意思是 1 除以 5 的余数。商 0 余 1 var a =4%6 //是四除六的余数,结果是 4 var a = 4;a % = 5;document.write(a); // 4 var a = 0;a % = 5;document.write(a); //0 var a = 10;a %= 2;document.write(a); //0 var a = 3;a % = 4; //4
“-”,“*”,“/“,“%”,”=“,“()”
优先级”=“最弱【赋值符号优先级最低】,”()”优先级较高

++

var a = 10; a = a + 1; //结果 11var a = 1;

a = a + 1;写成 a ++是一种简化形式“++”,是自身加一,再赋值给自身
a++是 a=a+1 的简化形式

例 var a =10;document.write(++a );document.write(a); //答案 11;11

是先执行++,再执行本条语句 document.write(++a)var a =1;document.write(a ++);document.write(a); //答案 1;2。

是先执行语句(document.write(a)),再++,所以第一次打印的还是 a,第二次打印 a++后的值

例 var a =10var b=++a -1+a++;document.write(b + “ ” + a) //答案 21 12++a,这个时候 a=11,再-1,再加 a,b 就是 21,最后++,a 就是 12
赋值的顺序自右向左,计算的顺序自左向右(按数学来)

例 var a =1var b = a ++ + 1;document.write(b)//答案 2,先执行 var b =a+1, 再 a++var a =1var b = a ++ + 1;document.write(a);
document.write(b)//答案 2,2 var a =1var b = ++a + 1;document.write(a);document.write(b)//答案 2,3 var i = 1;var a = i++; //答案 a = 1; 此时 i 先将值 1 赋给 a,然后自己+1,i=2;
var b = ++i; //答案 b = 3;此时 i 先自己+1 为 3.再给 b 赋值,b=3;

-

“- -”,是自身减一,在赋值给自身

var a = 1;var b = a-- + -- a;document.write(b); //答案 0,先执行--a;此时 a 变成0,然后第一个 a 也变成 0,那么 b = 0-- + --a var a = 1;var b = --a + --a;document.write(b); //答案-1 例 var a = 1;document.write(a++);document.write(a); //答案 1;2 var a = 1;document.write(++a);document.write(a); //答案 2;2 var a =1; var b = a ++ +1;document.write(b); //答案 2 a 写在后面就后运行,先计算 a+1=2 赋值给 b 后再++var a = 1;var b= ++a + 1;document.write(a);document.write(b); //答案 2;3

+= -=

var a =10;a ++;a ++;a ++;加十个
简化写法:a +=10;也是 a = a+10;var a =10;a += 10 + 1; //答案 21var a = 1;a = a + 10;等于 a+=10
a++是 a +=1 的写法

/=

var a=10;a/=2; //答案 5,是除二赋给自身的意思

*=

var a =10;a *=2; //答案:20,是乘二赋给自身的意思

%=

var a=10;a%=2; //答案:0, 10 能整除 2,余数是 0,取余,余数赋给自身。var a=3;a%=4; //答案:3,3 除以 4,余数为 3,余数赋给自身。var a=0;a%=4; //答案:0,0 除以 4,余数为 0,余数赋给自身。var a = 1;a% =10; //答案:1,1 除以 10,余数为 1,余数赋给自身。

四、作业

一、

在这里插入图片描述

document.write(a++);1(先打出 1++)
document.write(--b);2
b % =a + 3,3 的模等于 4,除不开再赋值给 b,b 还是 3

二、

var a =123; var b =234;经过计算交换 a,b 的值

方法一普通方法:
var c = a; 
a = b; 
b = c;
document.write(a ,b);

方法二 
a = a + b; 
b = a – b; 
a = a – b; 
document.write(a ,b);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值