javascript的发展史
1、1992年 ,Nombas 为自己的软件写一款脚本语言 ScritEase ,可以嵌入在网页中运行
2、1995年 ,Netscape(网景) Navigator2.0 > LiveScript > Javascript ,Java 与 Javascript之间没有任何关系
3、1996年 ,Microsoft 在 IE3.0 中发布 JS的克隆版 JScript
4、1997年 ,Javascript 1.1 版本 作为 草案 提交给了 ECMA(欧洲计算机制造商联合会) ECMA-262标准 ECMAScript 作为 JS
javascript的组成:
ECMAscript Dom Bom
javascript的语法
1.在标签中写
2.外部脚本文件
1)、
创建脚本文件并编写脚本 脚本文件: ***.js
2)、引入外部脚本文件
注意:
1、必须是成对的 script标签
2、该对标记中,不允许出现任何于js无关的内容
3.注释
1)、单行注释
// 单行注释
2)、多行注释
/*
* 多
* 行
* 内
* 容
*/
4.严格区分大小写
console.log(""); 正确
Console.log("");错误
变量和常量
1.变量:内存中的一段存储空间
2. 变量的声明:
1)、声明
var 变量名;
2)、赋值
变量名=值;
3)、声明和赋值合一块
var 变量名=值;
4)、注意
声明变量时可以不加 var
var stuname="张三丰";== stuname="张三丰";
如果省略了 var , 那么声明的就是"全局变量",有可能造成 "全局污染"
5)、如果声明变量没有赋值的话,那么将自动赋值为 undefined
3、一次性声明多个变量
stuname,stuage,stugender
var stuname; var stuage; var stugender;
一次性声明多个变量 使用一个 var , 多变量名之间 用 ,分隔
var stuname,stuage,stugender;
4.变量的命名规范
1)、可以有字母、数字、下划线、$
var +name; 错误 ,不能有 +
2)、不能用数字开头
var 1name; 错误 var name1; 正确
var $name; 正确 var _name; 正确
3)、看见名字就知道意思
var a;
var b,c,d,e,f,g,aab,aac;
上边的方式,不要用
var username; var salary;
5、可以用 "匈牙利命名法","驼峰命名法","下划线命名法"
1)、驼峰命名法
如果 变量名 是由多个单词组成的名词,那么从第二个单词开始,每个单词的首字符变大写。
var userName; var userSalary;
var stuJavaScore
2)、下划线命名法
var _userName;
var user_name;
常量:一旦声明就不可以改变的值叫做常量 比如:1天=24小时 1小时=60分钟 太阳每天东升西落
1.声明常量:
1)声明常量用 const,常量名一般大写,声明常量必须赋值
2)声明常量并赋值
const DAY=24; const PI=3.14;
数据类型:
1.数字:number 整数和小数
var a=5; var b=13.5; var c=0.5;
2.字符串:string 只要有引号的都是字符串(单引号/双引号)
var str='hello world'; var c='123'; var d="你好";
3. 布尔:boolean
只有两个值 true真 false假 var boo1=true; var boo2=false;
var boo3='true';string
var boo4='false';string
布尔值在做运算的时候
true会转换为1 false会转换为0
true+false=1 1+true=2
4.undefined:定义的
5.null 空
6.object 对象
声明一个变量没赋值会返回一个undefined
var b;
console.log(b);
直接输出一个未声明的变量会报错
console.log(c)
隐式转换
1.number+number
var a=3;
var b=5;
console.log(a+b);
2.number+string 拼接
var a=3;
var b='5';
var c='hello world';
console.log(a+c);
3.number+boolean
var a=3;
var b=true;
var c=false;
console.log(a+c);
console.log(a+b);
4.string+boolean 拼接
var a='3';
var b=true;
console.log(a+b);
5 number+undefined
var a=3;
var b;
console.log(typeof(a+b));
not a number
不是一个数字
6.numberstring +undefined
var a='3';
var b;
console.log(typeof (a+b));
总结: number+string 拼接
number+boolean boolean转number
number+undefined NAN
boolean+boolean 求和数据类型
string加任何东西都是拼接
判断数据类型:
typeof
数据类型:number
isNaN:is not a number
是 , 不是一个数字
作用:判断一个非数字 如果是数字返回false,如果不是一个数字返回true
var a=3;
var b='5';
var c=true;
console.log(isNaN(a));false
console.log(isNaN(b));true
声明提前
console.log(a);
var a=3,
js在执行的时候会自动把var提到标签顶部
但是赋值不会被提到顶部
所以就等于这是一个没有赋值的变量
没有赋值的变量会返回 undefined
var a;
console.log(a);
a=3;
显示转换/强制转换
parseInt();转换成整数
var a='5';
var b=parseInt(a);
console.log(typeof a);
console.log(isNaN(a));
parseFloat();转换成小数
var a='1.01';
var b=parseFloat(a);
console.log(b);
console.log(typeof b);
Number();转换成number类型
var a='5';
var b=Number(a);
console.log(b);
console.log(typeof b);
toString();转换成字符串
var a=true;
var b=a.toString();
console.log(b);
console.log(typeof b);
toFixed();按要求保留小数位数
var a=13.956;
var b=a.toFixed(4);
console.log(typeof b);
一、隐式转换结论
1、数字 + 字符串 :将数字转换成字符串
2、数字 + boolean :将 boolean 转换为 number类型
3、数字 + undefined :结果为 NaN,NaN的类型是 number
4、字符串 + boolean :将boolean 转换成字符串
5、boolean + boolean :都转换为number在做相加运算
注:NaN:not a number 判断一个非数字 如果不是一个数字返回true,如果是一个数字返回false
案例: var str="hello world";
var str1=isNaN(str);
console.log(str1);
二、显示转换/强制转换
1.toString() 将任意类型转换为字符串类型
var num=5;
var str=num.toString();
console.log(typeof str);
2.parseInt(); 将一个数据转换为整数
var num=5.5;
var str=parseInt(num);
console.log(str);
console.log(typeof str);
3.parseFloat() 将一个数据转换为小数
var num=.5;
var str=parseFloat(num);
console.log(typeof str);
console.log(typeof str);
4.Number 将一个数据转换为number类型
var str="35.5你好";
var str1=Number(str);
console.log(str);
三、运算符和表达式
1.算数运算符
+ , - , * , / ,
%:模,计算两个相除的数字的余数
10 % 3 = 1
10.5 % 3 = 1.5
++,-- 运算符,单目运算符
++:自增加一
++在前 :先自身加一,在赋值
var a=5;
var b=++a;
先把a的值自增+1
再把自增后的赋值给b
++在后 :先赋值,在自增加一
var a=5;
var b=a++;
先把a的值赋值给b
再自增加一
--:自减减一
--和++的性质一样
四舍五入:toFixed(保留位数);
案例:
var a=3.1415;
var b=a.toFixed(2);
document.write(b);
由算术运算符组成的表达式,叫算术表达式
var a;
var b;
var c = a + b; 算术表达式,赋值表达式
2、关系运算符
1、作用
判断数据之间的大小或相等关系
2、关系运算符
> , < ,> = ,< = ,== ,!=
由 关系运算符所组成的表达式 称之为 关系表达式,关系表达式的值为boolean类型
==,!= : 只判断数值是否相等
=== :全等 类型相同 数值相同
!==:不全等
3、逻辑运算符
1、作用
判断多条件 以及 条件取反时使用
2、语法
1、逻辑 非
对现有条件 取反
语法:!
2、逻辑 与
有两个条件,两条件同时为真时,表达式才为真。
语法:&&
3、逻辑 或
有两个条件,只要有一个为真,表达式就为真
语法:||
4、运算结果
true && true : true
true && false : false
false && true : false
false && false :false
true || true : true
true || false :true
false || true : true
false || false :false
5.条件运算符(三目运算符)
1、语法:?
表达式1?表达式2:表达式3;
表达式1,值应该为 boolean 类型
如果表达式1的值为true,那么表达式2的值则作为整个表达式的值
如果表达式1的值为false,那么表达式3的值则作为整个表达式的值
ex :输入考试成绩,如果成绩大于等于60 ,则输出及格,否则输出 不及格
var a=prompt("请输入你的成绩");
if(a>=60){
alert("及格");
}else{
alert("不及格");
}
一:运算符和表达式
一、流程控制语句
1.
if(条件){
要执行的语句
}
2.
if(条件){
条件为true时执行的语句
}else{
条件不为true时执行的语句
}
3.多重条件语句
if(条件){
}else if(){
}
4.switch .....case
switch(变量){
case 情况1:
要执行的语句;
break;
case 情况2:
要执行的语句;
break;
case 情况3:
要执行的语句;
break;
default:以上任何一块都没匹配上的时候
要执行的语句;
break;
}
用switch .....case完成以下练习
请输入今天星期几,
星期一吃:米饭
星期二:吃馒头
星期三:吃面包
星期四:吃包子
星期五:吃饺子
星期六:吃油条
否则:不管饭,自己解决
var a=prompt("今天星期几")
switch(a){
case"星期一":
alert("米饭");
break;
case"星期二":
alert("馒头");
break;
case"星期三":
alert("面包");
break;
case"星期四":
alert("包子");
break;
case"星期五":
alert("饺子");
break;
case"星期六":
alert("油条");
break;
else:
alert("不管饭,自己解决");
break;
}
switch .....case直落形式
意思就是:不管是哪种情况都做相同的事
switch(){
case 情况1:
case 情况1:
case 情况1:
case 情况1:
case 情况1:
要执行的语句
break;
}