1、什么是JavaScript?
一种脚本语言 解释性语言
弱类型语言: 数据值决定变量的类型
2、JavaScript由什么组成?
核心ECMAScript
DOM
BOM
3、运算
string + number = string
string + boolean = string
number + boolean = number
number + undefiend = NaN
boolean + undefiend = NaN
string + undefiend = string
强制数据类型转换
toString() 数据.toString() 将任何数据转换为字符串
parseInt(数据) 将数据转换为整数型的number类型
parseInt("2a5.a64") 2
parseFloat(数据)
parseFloat("1.9a2") 1.9
Number(数据) 只要包含了非数字字符,返回NaN
自增的算法
var num = 5;
console.log(num++);//5 先输出num 后++
现在num值为6
console.log(++num);//7
console.log(num++ + ++num +num++);//25 7(8) + 9(9) + 9(10) =25
两个数的交换
var a = 123 ,b = 456;
如何让a与b的数值进行交换?
a = a + b;
b = a - b;
a = a - b;
console.log(a,b)
第二种办法
var c;
c = a;
a = b;
b = c;
console.log(a,b);
对于无限小数的处理
var change = 2 - 1.6;
console.log('找零:'+change);//此时输出台结果为0.399999~
四舍五入解决误差 .toFixed(n) n 保留n为小数
change = change.toFixed(2);
console.log('四舍五入后:'+ change);//结果为0.40
与,或,非。
var bi = prompt("输入笔试成绩:");
var face = prompt("输入面试成绩:");
都能入职
var isPass = (bi >= 60) && (++face >=60) ;
console.log('是否能入职?'+isPass)
笔试成绩和面试成绩有一个是100分就可以入职
var isPass1 = bi==100 || ++face ==100;
console.log('是否能入职?'+isPass1);
console.log(bi,face)
判断输入的数据是否为数字
var input = prompt("请输入:");
console.log('是不是一个数:'+ !isNaN(input) )
位运算符 按位与& 按位或| 按位右移>> 按位左移 异或^
& 按位 与 将两边的操作数转换成为二进制,每位的数字,只要对应都是1的时候,该位的结果才为1,否则该位结果为0
var num1 = 5;
var num2 = 3;
var r = num1 & num2 ;
console.log(r);//1
5: 101
3: 011
------------
r: 001
作用:判断奇偶性,比模的效率要高
判断数字与 1 做按位与 ,最后的一位 1 为奇数 0为偶数
console.log( (10 & 1) === 0 );//true偶数
console.log( (9 & 1) === 0 );//false奇数
10: 1010
1 : 0001
----------
0000
11: 1011
1 : 0001
--------
0001
| 按位 或 将两边的操作数转换成为二进制,比较每位上的数字,两个数字中有一个是1,则该位的结果就是1 ,否则 0
r = num1 | num2 ;
5: 101
3: 011
------------
r: 111 7
场合:向下取整 位运算一定会将数据转换为二进制,而小数会被转换为整数
console.log(r);
var num3 = 6.5;
console.log(num3 | 0);
6.5 ==> 6 110
0 000
------
r 110 6
<< 按位左移 ,将二进制数,向左移动几位 ,右面以0 补位
console.log(2 << 1);// 4
console.log(2 << 2);// 8
console.log(2 << 3);// 16
console.log(2 << 4);// 32
0000 0000 0001 0000
>> 按位右移 将二进制数,向右移动几位,左面以0 补位
console.log(8 >> 1);//4
console.log(8 >> 2);//2
console.log(8 >> 3);//1
console.log(8 >> 4);//0
0000 0000 0000 0001
^ 异或 将两边的数字转换为二进制 进行比较,每位上的数字,只有一个为1时,该位结果才为1,否则0
r = num1 ^ num2
console.log(r);
5: 101
3: 011
------------
r: 110 6
交换num1 和num2的值
num1 = num1 ^ num2;
num1 ^= num2;
num2 = num2 ^ num1;
num2 ^= num1;
num1 = num1 ^ num2;
num1 ^= num2;
num1 = num1 ^ num2;
5: 101
3: 011
------------
num1: 110 6
num2 = num2 ^ num1;
3:011
6:110
------
num2: 101 5
num1 = num1 ^ num2;
6:110
5:101
--------
num1: 011 3
console.log(num1,num2);// 3 5
==与===的区别
== 判断两个数据是否相等 值
!= 不等于, 判断两个数据是否不相等 值
=== 判断数值和类型是否完全相等
!== 判断数值和类型是否完全不相等
价格打折:用户输入消费金额,如果消费的金额>=100元,享受八折,输出实际付费金额
var price = prompt("请输入消费金额:");
左侧的表达式值为true则不执行右侧的表达式 反之则需要执行
price >= 100 && (price = price *0.8);
console.log('应收金额:'+price);
请用户输入一段留言:如果输入了,就输出留言的内容,否则就输出:“主人很懒,什么也没留下”
空字符串 可以当false使用
undefined
0
0.0
""
var msg = prompt("请输入留言:");
或,左边写了则输出,没写则看右边
var result = msg || ("主人很懒,什么也没留下");
console.log(result);
三目运算符
需要三个操作数/表达式 表达式1 ? 表达式2 : 表达式3;
表达式1:运算结果应该为boolean类型
表达式1 = true 执行表达式2
表达式1 = false 执行表达式3
允许嵌套
var score = prompt("输入成绩:");
var msg = score >= 80 ? "优秀" : score>=60 ? "合格":"不及格";
console.log(msg);
1、弹出一个输入提示框,请用户输入一个表示工资的数字,按如下规则在控制台中输出改工资金额的级别:
1)大于等于20000,显示 高工资
2)小于20000大于等于8000 显示 中高工资
3)小于8000 显示 普通工资
var pri = prompt('工资为:');
var re = pri < 8000?'屌丝': pri >= 8000 && pri < 20000?'白领': '高富帅';
alert(re);
2、体重健康指数(克莱托指数)计算公式如下:
体重(kg)/身高的平方(m)
20-25正常,20以下偏瘦,25以上偏胖
例如:某人是60kg,1.7m。那就是:60/(17*17)=20.76,属于“正常
”体重;
var wei = prompt('请输入体重:(kg)');
var hei = prompt('请输入身高:(m)');
var num = wei/(hei*hei);
console.log(num);
var world = num > 25?'大胖子': num < 20?'瘦猴': '标准身材';
alert(world);
3、要求用户输入一个四位数,将这个四位数的个,十,百,千位的数字单独输出来,并将他们的和求出来!
例:用户输入2045,输出结果为:个位:5,十位:4,百位:0,千位:2,和为:11
var num = prompt('请输入一个四位数:');
var q = parseInt(num / 1000);
var b = parseInt((num % 1000) / 100);
var s = parseInt((num % 100) / 10);
var g = parseInt(num % 10);
alert('千位是:' + q + '
十位是:' + b + '
百位是:' + s + '
十位是:' + g
+ '
它们的和是:' + parseInt(q+b+s+g));
4、商场为员工提供了基本工资(3000元)、物价津贴及房租津贴,其中物价津贴为基本工资的40%,房租津贴为基本工资的25%。编程计算实领工资
var pay = prompt('请输入工资:');
var house = parseInt(pay*0.4);
var thing = parseInt(pay*0.25);
alert('实际工资为:' + (parseInt(pay) + house + thing) + '你真是个屌丝!');