一、什么是javascript
javascript是一种运行于js解释器中的脚本语言
javascript与html关系
html是脚本语言,用于在浏览器中显示
javascript是脚本语言,用于与浏览器实现对话
二、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的 标准核心。 ES5 ES6
三、javascript的组成
1.ECMAScript
2.文档对象模型(Dom,Document Object Model),让js有能力与页面元素对话
3.浏览器对象模型(Bom,Browser Object Model),让js有能力与网页进行对话
四、javascript的特点
1、编写简单 - 任何文档编辑工具都可以编辑JS
2、无需编译,直接运行
3、弱类型编程语言强类型编程语言: C,C++,Java ...
特点:由数据类型来决定数值
弱类型编程语言:JS
特点:由数值来决定数据类型
4、面向对象的编程语言
五、javascript的语法
1.在标签中写js代码,该标签可以放在页面的任何位置
JS脚本
2.外部脚本文件
1)、创建脚本文件并编写 脚本
脚本文件:***.js
2)、引入外部脚本文件
注意:
1、必须是成对的 script
2、该对标记中,不允许出现任何内容
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 stuJavaScore
2、下划线命名法
var _userName; (一般用于全局变量命名)
var user_name;
常量:一旦声明就不可以改变的值叫做常量
比如:1天=24小时 1小时=60分钟 太阳每天东升西落
1.声明常量的方法:
1)声明常量用 const,常量名一般大写,声明常量必须赋值
const DAY;
const PI;
2)声明常量并赋值
const DAY=24;
const PI=3.14;
js三种输出方式
console.log('hello world');
控制台输出hello world
document.write('hello world');
页面打印出hello world
alert('hello world');
页面弹出helllo world
上面的两部可以简写为
var uname='张三';
在控制台出输出变量uname
console.log(uname);//正确
console.log('uname');//错误。这样输出的是uname这串字,输出一个变量不需要加引号
变量命名规范
每行后面加" ; 号"
变量名可以包含数字 字母 和下划线 $
但不可以以数字和特殊符号开头
var name='张三';正确
var name1='张三';正确
var name_1='张三';正确
var $name='张三';正确
var 1name='张三';错误
var +name='张三';错误
var *name='张三';错误
七、数据类型
js的数据类型:
数字类型(number)
字符串(string)
布尔(boolean)
null(空)
undefined(未定义)
对象(object)
1.数字类型 number
数字类型包括整数和小数
2. 字符串 string
有引号单引或双引的都是字符串类型
3.布尔类型 boolean
布尔类型只有两个值true 和 false,true表示真,false表示假
在做运算的时候true为1 false 为0
true+false=1
4.null 空
5.undefined 未定义
声明变量没复制返回undefined
6.object 对象
var obj={};
var arr=[];
八、数据类型的转换
typeof
九、隐式转换结论
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);
二、显示转换/强制转换
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);
5.toString() 将任意类型转换为字符串类型
var num=5;
var str=num.toString();
console.log(typeof str);
toFixed(n) 保留小数。
运算符
1//算数运算符;
+ - * /
%:模:两个数相除的余数就是模
3%2=1
5%3=2
10%10=0
++;
++在前:自增加一,在赋值
var a=3;
var b=a++ 在后
var a=3;
var b=++a 在前
++在后
++在后 :先赋值在加一
++在前:自增减一,在赋值
在后:先赋值在减一
2.关系运算符
> < >= <=
等于 == 对应 !=
全等 === 对应 !==
3 逻辑运算符:
与(和,且) &&
或 ||
非:相反 !
有假且为假 有真或为真
三目运算符
var score=prompt('睡眠时间')
var result=score>=8?'正常':
'不正常';
alert(result);-->
分支结构
if....else-->
if(条件){
条件为true的时候执行的语句
}
if(条件){
else
条件为false的时候执行的语句
}
4.switch ......case...
switch(条件){
case 情况1:
//执行的语句
break;
case 情况2:
//执行的语句
break;
case 情况3:
(执行的语句)
break;
}
var date = prompt('周周上分大全')
switch(date) {
case '星期一':
alert('武则天')
break;
case '星期二':
alert('李白')
break;
case '星期三':
alert('韩信')
break;
case '星期四':
alert('花木兰')
break;
case '星期五':
alert('百里玄策')
break;
case '星期六':
alert('干将莫邪')
break;
case '星期日':
alert('小学生多不推荐打排位')
break;
default:
alert('重新输入')
break;
}
var score = prompt('请输入成绩');
if(score>=100){
alert('国外三日游');
}else if(score>=90&&score<100){
alert('国内三日游');
}else if(score>=80&&score<90){
alert('省内三日游');
}else if(score>=70&&score<80){
alert('市内三日游');
}else if(score>=60&&score<70){
alert('县內三日游');
}else if(score>=50&&score<60){
alert('镇內三日游');
}else if(score>=40&&score<50){
alert('打');
}else if(score>=30&&score<40){
alert('爆打');
}else if(score>=20&&score<30){
alert('吊打');
}else{
alert('狂打');
}
alert('国外三日游');
} else {
if(score >= 90)
alert('国内三日游');
} else {
if(score >= 80) {
alert('省内三日游')
} else {
if(score >= 70) {
alert('市内三日游');
}
if(score >= 60) {
alert('县內三日游')
}if(score >= 50){
alert('镇內三日游')
}if(score >= 40){
alert('村内三日游')
}if(score >= 30){
alert('家内三日游')
}if(score >= 20){
alert('两大嘴巴子')
}if(score >= 10){
alert('没收手机999w秒')
}else{
alert('男女混合双打')
}
}
}
}
使用运算符
var a=parseInt(prompt('第一个数'))
var b=parseInt(prompt('第二个数'))
var c=parseInt(prompt('第三个数'))
alert(Number(a)+Number(b)+Number(c))
alert(a*b/c)
var a=5;
var b=5;
var c=9;
console.log(a==b);
console.log(a>c);
console.log((a===b)||(c
console.log((a===b)&&(c
console.log((a===b)&&(c>a))
console.log(a<=b)
console.log(a!=b)
console.log(a)
隐式转换
1.number+number
var a=3;
var b=5;
console.log(a+b);
2.number+string 拼接
var a=3;
var b='5';
var