JavaScript
概念
一门客户端脚本语言,javaScript = EcmaScript + javaScript自己特有的东西(BoM:对象+Qom:对象)
Var
var 是 variable(变量,可变物)的简写。在多种计算机编程语言中,var 被用作定义变量的关键字
内部js,外部js
要包含外部文件中的 JavaScript,就必须使用 src 属性。这个属性的值是一个 URL,指向包含
JavaScript 代码的文件
内部js:定义script,标签体内容就是js代码
外部js:在外部js文件定义script,通过src来调用js文件
script:可以定义在html页面的任何位置,定义的位置会影响执行的顺序,可以定义多个
数据类型
number:数字
整数,小数,NaN
NaN:一个不是数字的数字类型
String:字符串 ‘’ “”
bollean:true false
null:一个对象的占位符
undefined:未定义,一个变量没有初始化,则会被默认值为undefined
typeof:运算符
<注意:typeof对于null值会返回Objiect,这实际上是javascript最初的错误,现在null被认为是对象的占位符
typeof:获取变量的类型
格式: var Temp = “text String”;
alert(typeof (Temp));//输出String类型
alter:弹出一个警告框
document:输出到页面上
使用:document.write(要输出在页面上的);
变量
语法:var 变量名 = 初始化;
变量:一块存储数据的内存空间
javascript是弱类型语言
java:是强类型语言
弱:开辟变量储存空间时,不定义空间的数据类型,可以任意存放不同的数据类型
强:开辟变量储存空间,定义好了储存的数据类型,只能储存固定的数据类型
运算符
一元运算符
++, +(正号) : ++ (--)在前,先自增(自减),再运算
--,自增(自减):++(--)在后,先运算自增,自减 在运算
算术运算符
-,+, * ,/ ,%
赋值运算符
+= = -+
比较运算符
< ,> ,<=,>= ,==, ===(全等于)
逻辑运算符
&&(与,短路),||(或,短路) ,!(非)
!(非)理解: != 不等于
number转boolean number:0或NaN为假,其他为真
var text = 3;
document.write(!text)//false
document.write(!!text)//true
String 转boolean String:除了空字符串,其他都是真
var text = '';
var text1='aaa';
document.write(!text)//true
document.write(!!text1)//ture
document.write(!text1)//false
null&undefined转boolean null&undefined:都是false
三元运算符
? :
理解:
var p =1;
var c =2;
var q = p > c ? 1:9;
表达式? 值1:值2
如果为true则取值1,如果为false则取值2
注意:在js中,如果运算符不是运算符所要求类型,那么js会自动转换类型,将运算符进行类型转换
案例: var Temp = +"strrig";
alert(typeof (Temp));//转换为了number
alert(Temp + 1);//转换为了NaN
不是运算符所要求的类型,自动转换为了number类型,按照字面值转换,如果字面值不是数字,则转换为NaN
流程控制语句
if…else
switch
js中,switch语句可以任意接受任意的原始数据类型
while
do…while
for
不同之处 var
for(var i=1;i<=100;i++){
}
js中防止空指针异常
var texr = null;//当为空的时候if里面是不会去执行的
if(text){//防止空指针异常
if(text) 只要text!=0 ; text!=null,text!=undefined;text!=""的情况下就成立了。
}
var text = 'aa'
if(text){
只有当不为空的时候里面才会去执行
}
对象
Function
Function:函数(方法)对象
创建格式
方法一
格式:function 方法名称(形式参数列表){
//方法体
}
function sc(a,b){
alert(a + b);
}
sc(3,4);
方法二
var 方法名 = function(形式参数列表){
//方法体
}
var sum = function (a , c){//形参
alert(a,c);
}
sum("s"+"s");
方法
length:代表形参的个性
属性
方法一:方法定义是,形参的类型不用写,不用在形式参数列表写var
方法二:当方法是一个对象,如果定义名称相同的方法,会覆盖
var text = function (a,b){
alert(a,b);
}
function text(a,v){
alert(a,v)
}
text(1-2);//-1
方法三: js中,方法的调用只与方法的名称有关,与实际的参数列表没关
var sum = function (a,b,m){
alert(a);
}
sum(1);//1
显示出不严谨性,只要与方法的名称有关.与参数没关
方法五:在方法声明中有一个数组,隐藏式内置对象,arguments,封装所有的实际参数
function sum() {    var sum1 = 0;
for (let i = 0; i < arguments.length; i++) {
sum1 += arguments[i];
}
return sum1;
}
var sum2= sum(2,4,6);
alert(sum2);
Array:数组对象
格式
1:var arr = new Array(元素的列表);
2:var arr = new Array(默认长度);
3:var arr = [元素列表];
关键字:
join(参数):将数组中的元素按照指定的分隔符拼接为字符串
理解
var arr= ["qqq"];
arr[1]="te";
document.write(arr.join("++"));
push():向数组的末尾添加一个或更多元素,并返回新的长度
var app=[11,12,13];
app.push(1.14);
document.write(app);
length:数组的长度
Date:日期对象
语法:
var date = new Date();
关键字:
toLocaleString():返回当前date对象对应的时间本地字符串格式
理解:
var date1 = new Date();
document.write(date1.toLocaleString());
getTime():获取毫秒值,返回当前如期对象描述的时间和1970年1月1日零点毫秒值差
var date1 = new Date();
document.write(date1.getTime());
理解: 数组元素的类型可变的
var add=[1,false,"ooo"];
document.write(add);
数组的长度是可变的
//数组的长度是从零开始的
var add1=[1,2,3];
document.write(add1[2]+"<br>");//3
add1[3]=20;
document.write(add1[3]+"<br>");//20
document.write(add1[4])//undefined
Math:数学
格式解释:Math对象不用创建,直接使用
Math.add();
关键字:
random():返回0~1之间的随机数,含0不含1
ceil(x):对数进行上舍入
floor(x):对数进行下舍入
round(x):把数四舍五入为最接近的整数
PI:返回3.141592653589793
RegExP:正规表达式对象
正规表达式对象: 定义字符串的组成规则
单个字符:[ ]
特殊符号代表特殊含义的单个字符:
\d:单个字符[0-9]
\w:单个单词字符 [abc] 查找方括号之间的任何字符。
量词符号:
?:出现0次或1次
*:出现0次或多次
+:出现1次或多次
{m,n}:表示 m<= 数量 <= n
m如果缺省:{,n}:最多n次
n如果缺省:{m, }:最少m次
关键字
^:开始 $:结束
var ce1=/^\w{4,8}$/;
text(方法):验证指定的字符串是否符合正规定义的规范
var ce1=/^\w{4,8}$/;
var cs="lisi";
var cet = ce1.test(cs);//true
创建格式
var cmd=new RegExp("正则表达式");
var cmd = new RegExp("\w{2,5}");
var cmd1=/ 正则表达式/;
var cmd1=/\w{4,8}/;
注意:
var cmd = new RegExp("\w{2,5}");
/w:/含转义字符含义,不代表一个单词字符了
//w:代表一个单词字符
var cmd1 = new RegExp("\\w{1,5}");
Global
特点:全局对象,不需要对象,直接调用 方法名();
关键字:
encodeURI: 对 URI 进行编码。
decodeURI() :解码 URI。
decodeURIComponent():解码 URI 组件。编码的字符更多
encodeURIComponent():对 URI 组件进行编码。
parseInt():解析字符串并返回整数。
逐一判断每一个字符串是否为数字,直到不是数字,当第一个为字符串时,返回一个NaN
NaN:NaN参与的==比较全部都是false
isNaN:判断一个值是否是NaN
var a =NaN;
document.write(isNaN(a));//真的
eval():将javaScript 字符串,并把它作为脚本代码执行
var str = “document.write(123)”;
var str1=eval(str);
通过document.write(123)将它作为了脚本代码执行:在页面上输出一个123
小知识
变量中的定义使用var关键字使用的区分
使用:定义的变量是局部变量
不使用:定义的变量是全局变量
var b =1;
if(b){
c = 4;
}
alert(c );
正确格式:增加一定的可读性与思维逻辑
var b = 1;
var c ;
if(b){
c = 4;
}
alert( c )
GBK:中字符串一个汉字占2个字节
UTF-8:中字符串一个汉字占3个字节