骗别人容易骗自己的难,诸恶莫作众善奉行!
1.js编写位置:
(1)可以在元素标签内:
<!-- 点击 -->
<button onclick="alert('点击到了')">按钮</button>
<!-- 超链接 -->
<a href="JavaScript:alert('点到了')">点击链接</a>
(2)可以在script标签内:
<script>
alert('3434')
</script>
(3)可以外部引入:
<script src="./js.js">
</script>
2.注释:
选中要注释的代码: ctrl+/
//
3.语法规范:
(1)区分大小写。
(2)以分号结尾。
(3)保留的关键字不能使用
(4)命名不能以数字开头,可以以字母、_ 、$组合,规范驼峰命名
(5)js底层保留标识符实际保存的是uicode编码 utf8
4.数据类型:引用数据类型和基本数据类型。
引用数据类型:object。
基本数据类型:
(1)number 数字
(2)string 字符串
(3)null 空
(4) undefined 未定义
(5)boolean 布尔值
5.字面量和变量
字面量:不可改变的常量。例如:1233434等等。
变量:被赋值的壳,例如:x=y ,y=1.
// 16进制
a= 0X10;
console.log(a);
// 8进制
b = 070;
console.log(b);
b=parseInt(b,10)
console.log(b)
// 2进制
// c= 0b80;
// console.log(c)
6.js的数值范围最大与正最小值:
(1)最大值:
Number.MAX_VALUE
(2)正的最小值:
Number.MIN_VALUE
7.常规转译符:
(1)\n 换行
(2)\t 制表符
(3)\u 在js里可以转使用utf8底层编码;
8.强制数据类型转换
(1)转字符串:tostring()
var a=123;
console.log(typeof(a),a);
var b= a.toString();
console.log(typeof(b),b);
var c = 123;
console.log(typeof(c),c);
var c= String(c);
console.log(typeof(c),c);
该方法不会影响原变量但对于null 和undefined无效,可以使用string()方法。
(2)转number :number()函数
如果是纯数字 转为数字
如果是非数值内容 转为NAN
如果是空 或者是空格字符串直接为0
undefined转数字是NAN
true 0 false 0
var aa = '';
console.log(typeof(aa),aa );
var bb = Number(aa);
console.log(typeof(bb),bb );
(3)布尔值:Boolean()
除了0和NAN都是true
除了空串都是true
undefined false
obect true
9.运算操作符
// 先转换在计算
// 任何值和NAN计算都是NAN
// 串 + 串 = 拼串 还是字符串
// 隐式转换
// 任何值和字符串加串等于字符串
// 从左往右算
// 任何值 - * /时候都会转成number
// -0 *1 /1 隐式转换
// %取余
10.一元运算符。
// 一元运算符 只需要操作一个数
// typeof + 正号 -符号
// 和数学一样 取反
// 对于非number先转换在运算 可以隐式转换
// 原理和number()函数一样
var a='123';
console.log(typeof(a))
a= -a;
console.log(typeof(a))
// 例子
b= 1 + + '2' + 3;
console.log(typeof(b))
11.自增h和自减
// 自增 ++
// 对于一个变量以后 原变量的值会立即增加1
// 后++ (a++) 前 ++ (++ a)
// 不同的是值不同 a++ 表达的是自增前的值 ++a是自增后的值
var a = 1;
a = a++;
console.log(a)
a++;
console.log(a)
b = 10;
b = b++ + ++b + b;
// 第一个b 当前表达是 10 第二个是表达式12 第三个 12
// 从左往右执行
// 34
console.log(b)
// 自减 --
// 在自身的基础上减一
// 前 --a 后 a-- 立即使原变量值减一
// a-- 自减前的值
// --a 自减新值
运算练习:
var n1 = 10;
n2 = 20;
var n = n1++;
console.log(n);
// 10
console.log(n1);
// 11
n = ++n1;
console.log(n)
// 12
console.log(n1)
// 12
n = n2--;
console.log(n)
// 20
console.log(n2)
// 19
n = --n2;
console.log(n)
// 18
console.log(n2)
// 18
12.逻辑与 逻辑或
// 逻辑运算符号 非! 与&& 或||
// 如果对非布尔值进行元素转换,回先转为布尔值,然后取反
// 两次取反转为布尔值
// !
var a = true;
a = !!a;
console.log(a);
// &&
// 只要有一个false是时候返回false
// 全为true时候true
// 如果都为true则返回最后的 如果都为false则返回前的
var result = false && false;
console.log(result);
// ||
// 只要有一个true就是true
// 都为false就是false
// 如果第一个为ture就返回true
// 如果都为false则返回最后一个
var dd = true || false;
console.log(dd)
13. = 说明
// 相等运算符用来比较值是否相等
// = 一个是赋值
// != 不相等
// == 判断两个值是否相等 不能有空格
// undefined衍生自null
// ===不会做类型转换
// !==不全等
console.log(undefined == null)
// NAN不和任何值相等
console.log(NaN == NaN)
// 判断是不是NaN
isNaN();
// null不等于0
console.log(null == 0)
// 对于非数值转换时先转换在比较
// 任何值和NAN比较时候都是false
var a=10>5;
console.log(a)
aa =true>false;
console.log(aa);
// 两个字符串比较时候比较的事字符串编码
ss= "a" > "b";
console.log(ss)
14.uicode码使用
<!-- 网页中使用的是10进制,要在计算机中转换 -->
<!-- &# -->
<h1>@</h1>
<script>
// js中使用使用转译 \u
console.log('\u0040')
// @
</script>
15.三元运算
// 条件运算符 ?语句 1 : 语句 2
// 如果表达式非布尔值会转换为布尔值
var a = 10;
b = 20;
c=100;
a > b ? alert('小于') : alert('大于')
max= a > b ? a : b
console.log('max=' +max)
max= max >c ? max :c
console.log('max=' + max)
// 套三元
max = a > b ? a > c ? a : c :b > c ? b : c
console.log(12,max)
max = a > b ? (a > c ? a : c) :(b > c ?b : c)
console.log('1231',max)
// 逻辑与
max = a > b && a>c ? a : b>a && b>c ? b : c
console.log('逻辑与',max)
16. if 判断
<!-- prompt(): 尅弹出一个提示框,该提示框会带有一个文本框 -->
<!-- 返回的是string -->
<script>
var chengji = prompt('请输入成绩');
if (chengji > 100 || chengji < 0 || isNaN(chengji)) { alert('你能靠这么高') } else {
if (chengji == 100) {
alert('BMW')
} else if (chengji >= 80 && chengji <= 99) {
alert('iphone15')
} else if (chengji >= 60 && chengji < 80) {
alert('参考书')
} else {
alert('挨打')
}
}
var a = prompt('请输入身高');
b = prompt('请输入彩礼');
c = prompt('请输入颜值');
if (a >= 180 && b >= 1000 && c >= 500) {
alert('我一定要嫁给他')
} else if (a >= 180 || b >= 1000 || c >= 500) {
alert('比上不足比下有余,嫁吧')
} else if (a < 180 && b < 1000 && c < 500) {
alert('坚决不嫁')
}
var a=+ prompt('数字1');
b=+ prompt('数字2');
c=+ prompt('数字3');
if(a<b && a<c){
if(b<c){
alert(a+','+b+','+c)
}else if(b>c){
alert(a+','+c+','+b)
}
}else if(b<a && b< c){
if(a<c){
alert(b+','+a+','+c)
}else if(a>c){
alert(b+','+c+','+a)
}
}else if(c<a && c<b){
if(a<b){
alert(c+','+a+','+b)
}else if(a>b){
alert(c+','+b+','+a)
}
}
17.switch
// switch语句
// switch(条件表达式){
// case 表达式:
// 语句...
// break
// }
// 在执行时一次降case后的值和switch进行全等比较
// 如果为真当前代码开始执行
// break 退出语句
var score = 55;
switch (parseInt(score / 10)) {
case 10:
case 9:
case 8:
case 7:
case 6:
console.log('合格');
break;
default:
console.log('不合格');
break;
}
switch (true) {
case score >= 60:
console.log('合格');
break;
default:
console.log('不合格');
break;
}
// while循环
// while(条件语句){
// 语句
// }
// var n = 1;
// while (true) {
// alert(n++);
// if (n == 10) {
// break;
// }
// }
// do...while先执行性 再判断。可以保证至少循环一次
// while先判断在执行
// var n = 1;
// while (n<106) {
// document.write(n+'<br/>')
// n++;
// }
var money = 1000;
var n = 0;
while (money <= 5000) {
money *= 1.05;
n++;
}
console.log(money)
console.log(n)
18.for 循环
// var a = 1;
// while (a < 10) {
// a++;
// console.log(a)
// }
// for循环语法:
// for(1 初始化表达式; 2 条件表达式; 4更新表示式){
// 3 语句
// }
// 执行表达式初始化变量
// 执行条件表达式 判断是否执行循环
// 执行更新表达式
// for(var i = 0; i<10;i++){
// console.log(i)
// }
// for(var i=1,sum=0;i<=100;i++){
// if(i%2 !=0){
// sum=sum+i;
// }
// }
// console.log(sum)
// for(var a=1,su=0,j=0;a<=100;a++){
// // 不能等于1
// if(a%7 ==0){
// su=su+a;
// j++;
// }
// }
// console.log(su)
// console.log(j)
// for (var d = 100; d < 1000; d++) {
// var bai = parseInt(d / 100);
// var shi = parseInt((d - bai * 100) / 10);
// var ge = d % 10;
// if (bai * bai * bai + shi * shi * shi + ge * ge * ge == d) {
// console.log(d)
// }
// }
var num = prompt('请输入大于1的数组')
if(num<=1){
alert('不合法')
}else{
var flag=true;
for(var i=2;i<num;i++){
if(num % i ==0){
flag=!flag;
}
}
if(flag){
alert('是质数')
}else{
alert('不是质数')
}
}