js基本语法
1.变量
1.1变量声明
例如:var a=100
先申请再赋值
也可以 var a = 10,必须,隔开
b = 10,
c;可以赋值可以不赋值,但是一定要换行,最后分号结尾。
声明、赋值分解
单一var
1.2 命名规则
1.变量名必须以英文名、_、$开头
2.变量名可以包括英文字母、_、$、数字
3.不可以用系统的关键字、保留字作为变量名
关键字
break else new var
case finally return void
catch for switch while
defaul if throw delete
in try do instanceof typeof
保留字
abstract enum int short
boolean export interface static
byte extend long super
char final native synchronized
class float package throws
const goto private transient
debugger implements protected volatile
double import public
1.3 值类型——数据类型
原始值(栈数据 先进后出)
Number,String,Boolean,undefined,null
var a = 123 数字类型 Number
var b = "abc" 字符串类型 String
var c = true/false 布尔类型 Boolean
var d = underfined 未定义类型 undefined
var e = null 空类型 null
引用值(堆数据 没有顺序 但是栈内存放对应的名字)
array,object,function...data RegExp
var arr =[1,2,3,4,5,6,false,]
function
for gg
1.4 js语句基本规则
1、语句后面要用分号结束
2、js语法错误会引发后续代码终止,但不会影响其他js代码块
1、低级错误(语法解析错误)
例如:
var a = 10;
decument.write(a);
decument.write(b);
document.write('20')
2、逻辑错误(标准错误,情有可原)
3、书写格式要规范,“=+/-”两边都应该有空格
2、js运算符
2.1 运算操作符
1、 +
数学运算、字符串链接
任何数据类型加字符串都等于字符串(就是视觉上的相加)
2 、 “-”,“*”,“/”,“=”,“()”
优先级“=”最弱,“()”优先级最高
0 / 0 = NAN not a Number
1 / 0 = Infinty 无穷
-1 / 0 = -Infinty 负无穷
% 取余
3、 “++”,“--”,“+=”,“-=”,“/=”,“*=”,“%=”
2.2 比较运算符
1 “>”,“<”,“==”,“>=”,“<=”,“!=”
2 比较结果为Boolean值
3 “!”表示非
4 NAN不等于自己
2.3 逻辑操作符
1 “&&”,“||”,“!”
“&&”先看第一个表达式转换为布尔值的结果,如果结果为真,
那么它会看第二个表达式转换为布尔值的结果,
然后如果只有两个表达式的话,只看看第二个表达式,就可以返回该表达式的值了。(全真为真)
有中断作用
“&&”碰见假就停
可以用来检测数据
data && fn(data);
“||”碰见真就停
可以用来写兼容,为了使两者都可以适用,例如
div.onclick = function (e) {
var event = e || window.event;
// 非IE浏览器用 var event = e;
// IE浏览器 window.event;
}
“!”变成布尔值再取反
2 运算结果为真实的值
2.4 被认定为false的值
undefined,null,NaN,“”,0,false
3、条件语句
3.1 if、if else if
if<->&&转换
if(1 > 0 && 9 > 8){
document.write('老邓很磕碜');
}
if(score >= 90 && score <= 100) {
document.write('alibaba');
}else if(score >= 80 && score < 90) {
document.write('tencent');
}else if(score >= 70 && score < 80) {
document.write('baidu');
}else if(score >= 60 && score < 70) {
document.write('蘑菇街');
}else if(score < 60) {
document.write('你不是我教的');
}
else if 满足第一个就不向下进行了
if<->&&转换
if(1 > 2) {
document.write('a');
}
1 > 2 && document.write('a')
3.2 for
for循环一般是
先执行语句1,在判断2然后执行3
for循环的两个例子
例一
var i = 1;
var count = 0;
for(var i = 0; i < 100;i ++)
if (i % 3 == 0 ||i % 5 == 0||i % 7 == 0){
document.write(i + " ");
}
例二
var i = 100;
for (; i --; ){
document .write(i + " ");
}
3.3 while,do while
while循环就相当于for循环两边不写东西
逢七过
var i = 0;
while(i < 100){
if(i % 7 == 0 || i % 10 == 7){
document.write(i + " ");
}
i ++
}
do while循环(基本不用)
var a = 0;
do{
document.write('a');
i ++;
}while(i < 10)
输入语句:var n = parseInt(window.prompt('input'));
输出语句:document.write(n)
4.条件语句的补充
4.1switch case
var data = parseInt(window.prompt('input'));
switch(1) {
case "周一":
case "周二":
case "周三":
case "周四":
case "周五":
console.log('working');
break;
case "周六":
case "周日":
console.log('relaxing');
break;
}
// switch语句会把后面的都执行完,所以需要执行完。
4.2break
控制循环结束
4.3continue
终止本次循环,进行下次循环。
5.初始引用值
5.1数组 arr
var arr = [1,2,3,4,5,"afcn",undefined];
for(var i = 0; i < arr.length;i ++ ){
arr[i] += 1;
}
5.2对象 object
var Deng = {
lastName : "Deng",
age : 40,
sex : undefined,
wife : "xiaoliu",
father : "dengdaye",
son :"xiaodeng",
handsome : false,
}
Deng.lastName;
Deng.lastName = "old Deng";
Deng.lastName;
6.编程形式的区别
6.1面向过程
6.2面向对象
7.类型转换
console.log() 打印
7.1、显示类型转换
Number(mix)
parseInt(String.radix)
parseFloat(string) (转化为小数,从数字为开始看,看到除了.以外的非数字位为止)
toString(radix) (想把谁转化为字符串就把谁谁谁.toString(进制/可以不加) none和undefined不能用toString)
String(mix) (把数据转化为字符串)
Boolean() (把数据转化为布尔值)
Number(内容)
把括号里边的数据转换为数字
parseInt(String.radix)
把括号里边的数据转换为整数,后面为进制(取2到36)转换为十进制
7.2、隐形类型转换
isNaN() 调用number
++/-- +/-(一元正负) 调用number
+ 调用string,加号两边有一个字符串的话就转换成字符串。
*/% 调用number
&& || ! 调用Boolean
< > <= >= 调用number
== =!