2019.7.22JS初始内容的整理以及4道题目

 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 + '\n十位是:' + b + '\n百位是:' + s + '\n十位是:' + g
+ '\n它们的和是:' + 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) + '你真是个屌丝!');

posted @ 2019-07-22 21:17  矜鸾  阅读(196)  评论(0编辑  收藏  举报