js的输出
js和html不一样,js写的内容要在网页中显示,需要特别指定一下要显示才行 输出:指定要显示
1.以弹窗的形式在网中显示内容: alert(123) // 给用户做提示
2.跟html一样在网页中显示的:document.write(123)
3.带有询问的一种弹窗confirm(123) // 当对于用户的操作有疑问时,询问用户
4.可以输入的一种弹窗 prompt(123) // 提示用户输入内容
5.在控制台输出console.log(123) // 调试代码的时候,使用的。
变量的定义
变量是需要定义才会有 = 定义存储数据的容器
语法: var 变量的名称
语法2: var 变量名,变量名,... // 一次性定义多个变量
变量名称有要求:
由字母、数字、下划线、美元符号组成,但是不能用数字开头,不能使用关键字作为变量名 关键字,系统已经占用的名称
变量的赋值
给变量中放入内容 - 赋值
var a
使用 赋值符号 给变量中放内容: =
赋值符右边一定是一个具体的数据/值;赋值符左边一定是一个变量等待放内容;赋值符的作用是将右边的数据放在左边的变量容器中
// a = 3 // 将数据3放在a容器中
定义变量并放内容一步到位:var 变量名 = 数据
// var a = 3 // var b = a
可以一次性定义多个变量,并赋值 // var a = 3, b
/* 总结: 赋值就是将数据放在变量,通过赋值符:= =右边一定是数据,=左边一定是变量,=的作用是将右边的数据放在左边的容器中
var 变量 = 数据
var 变量 = 数据,变量 = 数据
*/
js的语法,每一行代码结束后,分号是可加可不加的,初期建议大家每行结束加分号 有些空格是必须的,有些空格是可选的
数据类型
数据类型 var a = 123
console.log(a);
检测数据类型: typeof
console.log(typeof a); // number - 数字类型
var b = '千锋帅哥'
console.log(b);
console.log(typeof b); // string - 字符串类型
js中的数据类型:
number - 数字类型
string - 字符串类型
字符串:一句话 - 若干个任意字符连接在一起的数据
表现:若干个任意字符用单引号或双引号引起来的数据
var a = "abcdefg"
console.log(a);
true / false - 年龄>18
js提供的专门用于描述一个条件或事物的两面性
var a = true
var b = false
console.log(typeof a); // boolean - 布尔类型
console.log(typeof b);
var a
console.log(typeof a); undefined - 未定义类型
正常的项目中,不会有变量是undefined类型的,一旦出现了,说明逻辑有问题
表示变量定义了,但是没有赋值,就是undefined类型
console.log(a); // undefined,表示没有赋值
object类型 - 对象,比较复杂的数据
var a = {
name: '张三',
sex: '男',
wife: '翠花'
}
var a = [1,2,3]
var a = null // 空的意思
console.log(a);
console.log(typeof a);
/* 总结: number string boolean undefined object:
{}
[]
null
js中的数据,一定要属于某种数据类型才ok,排除掉其他数据,只能是字符串 */
数字类型
number - 数字类型
了解:
1.标注16进制的数字和8进制的数字
var a = 12
console.log(a);
var a = 012 // 当给一个数字前添加0,表示这是一个8进制的数字
console.log(a); // 输出的时候,以10进制进行输出的
10进制的10转成8进制是12
012是8进制的12,转成10进制输出的10
var a = 0x12 // 这是16进制的12
console.log(a); // 转成10进制输出18
2.科学计数法来表示数字
console.log( 3e+5 ); // 3乘以10的5次方
3.计算机内部能显示的数字也是有范围的 var a = 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
console.log(a); // Infinity - 无穷大
最大数字 console.log( Number.MAX_VALUE );
最小数字 console.log( Number.MIN_VALUE );
-Infinity - 无穷小
需要重点掌握的: 1.isNaN()
var a = '你好'
console.log(a);
var b = 2
console.log(b);
var c = a - b
console.log(c); // NaN - 不知道是多少的一个数字
NaN:not a number 首拼 - 含义,不是一个具体的数字,数据的类型是number
console.log( typeof c );
如果在我们的代码中出现了NaN这个结果了,说明我们的运算的有问题
js提供了一个用于检测数据是否是数字的工具: isNaN()
结果是true表示这不是一个数字,false表示是一个数字
var a = 12 console.log( isNaN(a) ); // false表示这是一个数字
var b = '你好' console.log( isNaN(b) ); // true表示这不是一个数字
2.小数计算不精准
var a = 0.1
var b = 0.0002
var b = 0.2
var c = a + b
console.log(c);
解决思路:
1.将所有小数乘以10的多少次方,得到一个整数,除以10的多少次方
var c = (a * 10000 + b * 10000) / 10000
console.log(c);
2.利用js提供的工具:强制保留小数点后几位 - toFixed(要保留的位数)
要保留的数字.toFixed(要保留的位数)
var a = 0.1
var b = 0.2
var c = a + b
console.log(c);
console.log( c.toFixed(3) );
一旦强制保留小数点后位数时,结果默认就是字符串类型
/* 总结:
1.isNaN(数据) - 检测数据是否是数字,true表示不是一个数字,false表示是一个数字
2.小数点计算不精准 -
①扩大10的倍数,相加相减,再缩小10的倍数
②使用 数字.toFixed(位数) - 强制保留小数点后多少位 - 结果是字符串类型
*/
字符串类型
字符串:若干个任意字符用引号引起来
var a = 'asd点击★★★jkf"haj234768!#$%^&*(ksdf'
var b = "asdjkfhjkalsdf"
console.log(a);
1.引号嵌套问题:单引号不能嵌套单引号,双引号不能嵌套双引号 - 他们有特殊含义
将带有特殊含义的字符的特殊含义去掉,让他变成普通的字符,在特殊含义的字符前添加 \
转义符:将特殊含义去掉
var str = "爷爷正在给孙子讲《西游记》的故事,爷爷讲到:'唐僧害怕被孙悟空打死,所以对孙悟空说:"你会花果山去吧!"'"
` console.log(str);
document.write('文本加粗');
document.write(文本加粗);`
document.write可以输出标签,但是标签必须是一个字符串,否则识别不了
var a = '孙悟空'
var b = '紫霞仙子'
console.log(a);
console.log(b);
将两个字符串放在一起输出一次
- 字符串拼接符,将两个字符串拼接在一起,组成一个更大的字符串
console.log( a + b );
console.log( a + '紫霞仙子' );
console.log( '孙悟空' + '紫霞仙子' );
/* 总结:
1.引号不能嵌套自己,除非转义
2.document.write可以输出标签,但是标签必须是字符串
3.字符串和字符串之间可以使用 + 连接成一个更大的字符串
*/
算数运算
算数运算: + - * / %(求余/取模) ` var a = 5
var b = a + 3
console.log(b);
var c = b - 6
console.log(c);
var d = c * 5
console.log(d);
var e = d / 3
console.log(e);`
余数:两个数相除,如果除不尽,剩下一个比被除数更小的数,这个剩下的数就叫余数 ` var a = 10
var b = 3
var c = a % b;
console.log(c); // 1
var a = 10
var b = 5
var c = a % b
console.log(c); // 如果能除尽,余数是0
var a = 3
var b = 5
var c = a % b
console.log(c);`
3 小一点的数字除以大一点的数字,余数就是小一点的数字
关系运算
关系/比较运算:在比较大小 - > < >= <=
比较运算的结果一定是布尔值
var a = 1
var b = '1'
var c = a > b
var c = a < b
var c = a <= b
var c = a >= b
console.log(c);
相等 == ** 重点***
直接比较值是否相等,不比较类型
var c = a == b
console.log(c);
全等 ===
先比较类型是否相等,然后如果类型不相等的话,直接就得到false结果了,如果类型相等了,再比较值是否相等
var d = a === b
console.log(d);
不相等 !=
var c = a != b
因为 == !=的结果一定是相反的,所以我们可以先思考是否相等,再确定不相等的结果
console.log(c); // false
不全等 !==
var a = 1
var b = '1'
var c = a !== b
console.log(c); // true
/* 总结:
1. == 和 === 的区别
2. != 和 !== 的结果怎么得到 - 先看 == 和 === 的结果再确定
*/
赋值运算
赋值符号: += 右边先加然后再赋值
+= , -= , *= , /= , %=
var a = 1
先将a和2相加的结果得到3,再赋值给a
a = a + 2
简写
a += 2
a -= 5
a *= 3 // 3
a /= 1
console.log(a);
var a = 10
a %= 6
console.log(a);
字符串拼接运算
var a = 1
var b = '2'
- 左右两边有一个是字符串的话,他的作用是拼接
var c = a + b
console.log(c);
b += 5 // b = b + 5
console.log(b);
逻辑运算
逻辑: 并且&& , 或者|| , 非/取反!
用法: 条件 && 条件 , 条件 || 条件 , !条件
小红立志要当模特,模特的条件年龄在18~30之间
var age = 19
var result = age > 18 && age < 30
console.log(result);
var result = !(age <= 18 || age >= 30)
console.log(result);
小红立志要嫁给小明,小明择偶要求:身高在170以上,或者身价1000000,
var height = 150
var money = 2000000
var result = height > 170 || money > 1000000
console.log(result);
var result = !(height <= 170 && money <= 1000000)
console.log(result);
小红是一个女孩,去了泰国一趟
var isMan = false
isMan = !isMan
console.log(isMan);
自增自减运算
自增运算
var a = 3
a += 1
让一个数字在自己的基础上再加1 - 使用简写方式:自增运算
a++
++a
自增运算只能针对变量,不能针对表达式,或具体数字
console.log(a);
++放前面和放后面,在某些特定情况下是不一样的,当 自增 碰到 赋值、运算、输出的时候,放前面和放后面是不一样的
var a = 3
var b = a++
当自增碰到赋值的时候,++在前面就先进行++,后进行赋值,如果++在后面,就先进行赋值,后进行++
自减运算
符号: -- 让自己减1