一 .
1、什么是JavaScript?
一种脚本语言 解释性语言
弱类型语言: 数据值决定变量的类型
2、JavaScript由什么组成?
核心ECMAScript
DOM
BOM
3、怎么使用JavaScript?
在Script对标签中写js代码
在外部js文件中写js 代码 需要将js文件引入
在标签的属性(事件属性等)里面写js代码 不推荐
4、变量
在内存中声明的一段可以存储可变化的量
var 变量名 = 值;
变量名的命名规范:
不能用数字开头
允许用 数字、字母、下划线 和 $
不能使用关键字和保留字
驼峰
$name
数据类型
number 小数和整数 可以表示32位的整数 可以表示64位的浮点数
string 需要用 "" 或''包括的就是字符串类型一个字符占两位
boolean
undefined
null
引用数据类型
var a = 1 "1"
运算
string + number = string
string + boolean = string
number + boolean = number
number + undefiend = NaN
boolean + undefiend = NaN
string + undefiend = string
js的函数
isNaN(数据) 检测数据是否为 非数字
强制数据类型转换
toString() 数据.toString() 将任何数据转换为字符串
parseInt(数据) 将数据转换为整数型的number类型
parseInt("2a5.a64") 2
parseFloat(数据)
parseFloat("1.9a2") 1.9
Number(数据) 只要包含了非数字字符,返回NaN
二.算术运算符
算术运算符 + - * / % ++ --
++ /-- 作为前缀 先自增/自减在使用 作为后缀 先使用在自增/自减
var num 5 ;
num++;// num = num + 1
console.log(num); 6
console.log(num--); 6
console.log(num); 5
console.log(++num); 6
var r = num++ + ++num + num++;
console.log(r) 22
console.log(num) 9
num++6 自加1 然后用于下一个运算 7
++num 8 自加1 然后用于下一个运算 8
++ num 8 自加1 (9)
优先级 先 * / % 再 + - 如果想提升优先级 使用()
35+ 2*18/3 + 12/6%4; 49
(35+ 2)*18/(3 + 12)/6%4; 3.4
四舍五入
// 四舍五入解决误差 .toFixed(n) n 保留n为小数
var change = 2 - 1.6;
console.log('找零:'+change);
change = change.toFixed(2);
console.log('四舍五入后:'+ change);
判断奇偶性 请用户输入一个数 判断是奇数还是偶数
var inputNum = prompt("请输入一个数:");
console.log("奇数?"+ (inputNum%2) );
三 关系运算符
> < >= <= == != === !== 最后的结果一定是boolean类型
var str = '100';
var n = 100;
1.string 和 number 判断大小时, 将字符串隐式转换为number类型 用Number()函数
console.log(str>5); true
2.任何一个数据与NaN进行比较时,结果一定都是false (*30a会被转换为NaN)
console.log('30a'>5) flase
3.string和string之间判断大小 根据每个字符的unicode码作比较
console.log('a'>'b'); (a 的 ASCII97 b 98)
四.位运算符
1.按位与 &
将两边的操作数转换成为二进制,每位的数字,只要对应都是1的时候,该位的结果才为1,否则该位结果为0
只能做数字的运算,且要将数字转换为二进制,在做运算
var num1 = 5, num2 = 2;
var r = num1 & num2 ;
console.log(r); // 1
// 5 二进制: 101
// 2 二进制: 010
// r 000
作用:判断奇偶性,比模的效率高,判断数字与1,做按位与,最后的一位 1为奇数,0 为偶数
console.log((10 & 1) === 0 ); // true
console.log((9 & 1) === 0); // flase
10 二进制 1010
1 二进制 0001
结果 0000
2.按位或 |
将两边的操作数转换成为二进制,有一个是1,则该位的结比较每位上的数字,两个数字中果就是1 ,否则 0
var num1 = 5, num2 = 2;
var r = num1 & num2 ;
console.log(r);
5 二进制: 101
7 二进制: 010
r 111 7
向下取整,位运算一定会将数据转换为二进制,而小数会被转换为整数
var num3 = 6.5;
console.log(num3 | 0);
6.5 == > 6 110
0 000
110 6
3.按位左移
<< 按位左移,将二进制数,向左移几位,右边以0补位,
console.log(4 << 2) 向左移动两位
0000 0000 0100 (4) ---->> 0000 0001 0000 (16)
4.按位右移
console.log(8 >> 2) 向右移动两位
0000 0000 1000 (8) -----> > 0000 0000 0010 (2)
5.异或
将两边的数字转换为二进制
进行比较,每位上的数字,只有一个为1时,该位结果才为1,否则0
var num1 = 5;
var num2 = 2;
r = num1 ^ num2
console.log(r); 7
*交换num1 和num2的值
num1 = num1 ^ num2;
//num1 ^= num2;
num2 = num2 ^ num1;
//num2 ^= num1;
num1 ^= num2;
// num1 = num1 ^ num2;
console.log(num1,num2);
五.赋值运算符
+= -= *= /= %= &= |= ^=
单目运算符
// ++ -- !
// 双目运算符
// + - * / % && || ^ & | > <
// 三目运算符
表达式1 ? 表达式2 : 表达式3
表达式1:运算结果应该为boolean类型
// 表达式1 = true 执行表达式2
// 表达式1 = false 执行表达式3
// 允许嵌套
判断成绩,如果成绩>=80 优秀
>=60 合格
<60 不及格*/
var score = prompt("输入成绩:");
var msg = score >= 80 ? "优秀" : score>=60 ? "合格":"不及格";
console.log(msg);