主题
1995年,由Netscape ( 网景)公司的Brendan Eich开发出来的。
借用了当时一个业界非常流行的词语java,于是更名为javaScript.后来微软进入浏览器行业。
为了统一语法标准,1997 年,JavaScript 1.1 作为一个草案提交给欧洲计算机制造商协会(ECMA),第 39 技术委员会(TC39)被委派来“标准化一个通用、跨平台、中立于厂商的脚本语言的语法和语义,由来自 Netscape、Sun、微软、Borland 和其他一些对脚本编程感兴趣的公司的程序员组成的 TC39 锤炼出了 ECMA-262,该标准定义了名为 ECMAScript 的全新脚本语言。
javascript是一种基于对象的,事件驱动的,跨平台的,客户端脚本语言;
javascript能对页面进行渲染,让页面有行为。让页面动起来,与后台数据进行交互。
ECMA:语法规范;
BOM:B:document ( 浏览器 ) O:object ( 对象 ) M:module (模型 );
DOM:D:browser (文档 );
HTML可以看作就是js,html很多标签都依赖的js的API实现;
内部; 行内; 外部:js的引入;
// 单行注释
/**/多行注释
1.document.write(val1,val2……);//在页面输出一个或多个值,值中可以有标签,输出时页面会解析标签
2、alert ( val );//弹出框,在页面弹出一个弹出框,val会在弹出框中显示,会阻止后面代码的执行,当点击弹出框中的确定按钮,弹出框消失,程序才会执行后面的代码
「只能输出一个」
3.console.log(val1,val2…);//在浏览器debug工具中的Console(控制台)选项卡中显示log中的一个或多个值
/*测试输出有三种
/* alert()在当页面弹出警告框,来显示要写的内容
document.write()在当页面上输出内容
console.log()在控制台上输出内容
*/
以上方法用于代码执行过程中数据的测试
1.什么是变量: var 标识符(变量名) = ‘值 ’;
一次性多个变量: var a = 9 , b = 3 , c = 2;
在程序运行的过程中,有可能发生变量的量称为变量
规则:
变量名开头:字母、$、下划线 三种字符开头;如:var uName、name,_name;(错误写法:var 1name,%)
其它字符:字母、$、下划线、数字四种字符;如:var uName,$name,_name,name1;(错误写法:var nam%n,nam-e;)
标识符;所有用户自定义的名字叫做标识符
变量名也是标识符。
命名规则;
1.只能数字·字母 ·下划线 ·和美元符号(&)组成
2.不能以数字开头
3.不能保留字和关键词。
4.大小写敏感 age Age 这是两个完全不同的变量。
5.见名思意(尽量用英文全称来表示)
6.单词个数超两个时
className
class_name
a.基本数据类型
number
string
boolean:布尔类型。表示真true和假false;
null
undefined
b.引用数据类型(对象类型)
object
typofe操作符
作用:用于检测一个变量是哪种数据类型。
运算符:
赋值运算符、关系运算符、算术学运算符、逻辑运算符、三目运算符、自增自减运算符(单目运算符)、()运算符
赋值运算符:
简单赋值 var a = 2;
复合赋值 var a = 2; a+=3 相当于 a = a+3;a=5;
运算符;
1,算数运算符(+,—,*,/,%【取余数】)
字符串和数的并接(+)
2,关系运算符
>,<,>=,<=,==,!=,!==,===
3,逻辑运算符
$$ || !
4,一元运算符
++ —-
5,赋值运算符。
<1>基本赋值运算符 =
<2>复合赋值运算符 +=,—=….X=
*/
- (1)与运算
格式;
表达式1 && 表达式2
规律;只有当两个表达式都为true的时候,整个表达式才为真
短路操作;当表达式1为false的时候,表达式2就不执行了,就直接得出结果为false。(后面会用法)
(2)或运算;
格式;
表达式1 || 表达式2
规律;只有当两个表达式都为false的时候,整个表达式才为假;
短路操作;当表达式1为true的时候,表达式2就不执行了,就直接得出结果为true。(后面会用法)
(3)非运算;
格式;
!表达式;
规律;现将表达式的值自动数据类型转换成布尔值,然后,再取返。
(注)非0既真,非空既真;
a++
值;++后置,先取a的值作为a++的表达式的值,然后再对a进行+1;
功能;对原有的变量进行+操作:
++a:
值;++前置,先对a进行+1操作,再a的值作为++a表达式的值
功能;对原有的变量进行+操作:
三目运算符;
格式;
表达式1 ? 表达式2 表达式3
执行;
1.先去判断表达式1是否为真.
2.表达式1为真,直接去执行表达式2.
3,表达式1为假,直接执行表达式3.
[注]本质是一个双分支语句.
//判断一个数是否是奇数还是偶数
var num = 8;
/* if(num % 2 == 0){
alert(“这是偶数");
}else{
alert(“奇数");
}.
num % 2 == 0 ? alert("偶数"): alert("奇数");
isNaN 是一个方法 【 !isNaN 前面加 ! 这意思反过来】
alert ( isNaN( 13a ) )用来判断是否是数字,如果值不是一个数字,返回值结果true。
反之,结果是数字,返回值false。【注意】
Var result = prompt();
prompt()执行后,页面会出现一个弹出窗,程序会阻止后面的程序执行,用户在弹出窗内输入内容。提交后才会继续执行下去,()括号内可以填写提示文本。
算数运算、关系运算、逻辑运算、三目运算(三元运算)、自增自减运算符(单元运算符)、赋值运算
优先级:
() >自增自减运算符(单目运算符)>算术学运算符 >关系运算符 >逻辑运算符 >三目运算符 >赋值运算符
手动转换:
Number() 把一个值转换数字;例子alert(Number(“38.4”))//38.4
parseInt() 把一个值转换整数;例子(val , 10)可以用来换10进制的值
parsFloat()把一个值转换小数;
toString()把一个值转换字符串;var a = num . toString()//用点的方式来调用执行
Boolean()把一个值转换布尔值;
非0既为true,非空既true。空格是true
如果左右两边表达式是以单个数据类型的具体值存在;
解析的过程,会将这些值隐匿为布尔值来运行。表现出来的是值
是以条件存在的都叫表达式;
所有的数据类型都可以成为表达式。
【注】程序解析是从上往下,从左到右,一行代码中如果有优先级,按优先级来运行;
程序三大结构;
顺序结构、条件结构、循环结构
if(判断条件「表达式」){
执行语句
}else{
不符合判断条件时 将执行
}
【注】if( !isNaN ){
if中可以嵌套多个if
}else{ }
// 当表达式1 成立,执行语句1. 如果表达式1不成立,程序判断表达2,执行语句2
否则将继续执行下去。都不成立直接成立else
if(判断条件1){
alert( 执行语句1 );
}else if ( 判断条件2 ){
执行语句2
}else if (判断条件3 ){
alert(执行语句3)
}else { }
【注】后面可以写多个 if 判断条件
switch语句;
语法;
switch(表达式){
case 常量1:
执行语法1:
break;
case 常量2:
执行语法2:
break;
…
default:
当上述所有当case选项都匹配失败,执行这里.
break;
}
switch( 表达式){
case 值1:
语句1
break;// 结束 [ ⚠️]不加break 程序会继续穿透运行下去
case 值2:
语句2
break; //结束
…….
default :
alert ( )
break;//结束
以上表达式与cese的值需要全等,不匹配。会执行这里
}
if 与 switch 的区别; 总结
if 的表达式以布尔值去运行,switch 的表达式常用于具体值的匹配
if 永远只有一个出口 ,switch 因为case的穿透特性可以有多个出口
1、while循环;
三种语法;
while循环
do_while循环
for循环
while循环;
格式;
while(循环条件){
循环语句;
i++;
}
执行;如果循环条件成立就执行循环语句,到循环条件不成立为止。
2、do while 循环
do...while循环
语法;
do{
循环语句;
}while(循环条件);
[注]do…while循环后面分号不要省略;
while循环与do...while循环的区别;
1.while循环
先判断循环条件,再执行;
2.do...while循环
先去运行一次循环语句,再去判断循环条件;
3、for循环
for循环;
格式;
for(表达式1 ;表达式2 ;表达式3;){
执行语句;
}