javascript的发展史
1、1992年 ,Nombas 为自己的软件写一款脚本语言 C-- --》 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 Bomjavascript的语法
1.在标签中写js代码,该标签可以放在页面的任何位置 JS脚本
2.外部脚本文件1)、创建脚本文件并编写 脚本脚本文件:***.js2)、引入外部脚本文件注意:1、必须是成对的 script2、该对标记中,不允许出现任何内容 3.注释 1)、单行注释单行注释 2)、多行注释 /* * 多 * 行 * 内 * 容 */
4.严格区分大小写 console.log(""); Console.log("");错误 变量和常量 1.变量:内存中的一段存储空间
2. 变量的声明1)、声明 var 变量名;2)、赋值 变量名=值;3)、声明变量并赋初始值 var 变量名=值;4)、注意
1、声明变量时可以不加 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 age;var gender;var salary;var userName;var userSalary;var stuJavaScore2)、下划线命名法var _userName;一般用于全局变量命名var user_name;常量:一旦声明就不可以改变的值叫做常量 比如:1天=24小时 1小时=60分钟 太阳每天东升西落
1.声明常量的方法: 1)声明常量用 const,常量名一般大写,声明常量必须赋值 const DAY; const PI; 2)声明常量并赋值 const DAY=24; const PI=3.14; 数据类型: 数字:number 整数和小数 var a=5; var b=13.5;var c=0.5; 字符串:string 只要有引号的都是字符串(单/双) var str='hello world'; var c='123'; var d="你好"; 布尔: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 undefined:未定义的
5.null 空
6.object 对象 var a=5; console.log(a); 声明一个变量没赋值会返回一个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;//undefined console.log(typeof(a+b)); NaN:not a number 不是一个数字 NAN是一个numberstring +undefined var a='3'; var b;//undefined console.log(typeof (a+b));总结: number+string 拼接 number+boolean boolean转number number+undefined NAN boolean+boolean 求和判断数据类型: typeofNaN :not a number 不是一个数字 数据类型:number isNaN:is not a number 是 不是一个数字 作用:判断一个非数字 如果是数字返回: 如果不是一个数字返回:var a=3;var b='5';var c=true; console.log(isNaN(b));falseconsole.log(isNaN(b));true声明提前 console.log(a);var a=3;js在执行的时候会自动把var提到标签顶部
但是赋值不会被提到顶部
所以就等于这是一个没有赋值的变量
没有赋值的变量会返回 undefined
var a;
console.log(a);
a=3; n
显示转换/强制转换
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);//5
console.log(typeof str);//number
3.parseFloat() 将一个数据转换为小数
var num=.5;
var str=parseFloat(num);
console.log(typeof str);//0.5
console.log(typeof str);//number
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、逻辑 或
有两个条件,只要有一个为真,表达式就为真
语法:||
3、运算结果
true && true : true
true && false : false
false && true : false
false && false :false
true || true : true
true || false :true
false || true : true
false || false :false
4.条件运算符(三目运算符)
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;
}