代码改变世界

JS课堂笔记

2019-07-22 21:15  张海峰999  阅读(267)  评论(0编辑  收藏  举报

.

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);