一 JavaScript的历史
1 Netscape(网景)接收Nombas的理念,(Brendan Eich)在其Netscape
Navigator 2.0产品中开发出一套livescript的脚本语言.Sun和Netscape
共 同完成.后改名叫Javascript
2为了统一三家,ECMA(欧洲计算机制造协会)定义了ECMA-262规范.国际标准
化组织及国际电工委员会(ISO/IEC)也采纳 ECMAScript 作为标准
(ISO/IEC-16262)。从此,Web 浏览器就开始努力(虽然有着不同的程度
的成功和失败)将 ECMAScript 作为 JavaScript 实现的基础。
EcmaScript是规范.
ES6(ECMAScript 2016) /ES7
一门编程语言,和 Python\Java\PHP\Go \C++\C# 类似的.
二 ECMAScript 主要由三部分
1 核心 ECAScripr
2 文档对象模型 (DOM)Document object model(整合js,css,htma)
3 浏览器对象模型(BOM)Broswer object model(整合js和浏览器)
描述以下内容:语法 类型 语句 关键字 保留字 运算符
对象(封装 继承多态)基于对象的语言 使用对象
三 JavaScript 引入方式
1 标签内写代码
<script>
// 在这里写你的JS代码
</script>
2 引入额外的JS文件
<script src="myscript.js">
</script>
四 JavaScript语言规范
1 注释
// 这是单行注释
/*
JS这是多行注释或者
这也是样式多行注释
*/
2 结束符
结束用;分号
五 JavaScript语言基础
1 JavaScript 的变量名可以使用_,数字,字母,$组成,不能以数字开头。
2 声明变量 var变量名;的格式化进行声明
var nam= 'alex'
注意:变量名是区分大小的;推荐使用驼峰式命名规则;
页面控制台和pxcm 里面 的用法的不同;
1 pxcm 只声明 在控制台console 不能看见 只有执行console.log(变量名):才能出现
必须写script;
能保存
2 在控制台 不用写scrip 不执行console.log(变量名):t 直接运行 但是只限于调试
不能保存
六 JavaScript 的数据类型;
a ;alert :弹框
方法:
<script>
alert('第一次弹框001');
alert('第一次弹框002');
</script>
var x; \\声明会出现underline
var x=1;
console.log(x); \\出现对应的值1
var x= 'alex'
console.log(x); \\出现对应的值alex
1 数字类型 JavaScript 不区分整型和浮点型,就只有一种数字类型。
%E7%BB%83%E4%B9%A0.html:10 Uncaught SyntaxError: Invalid or unexpected token
报错: 带有中文的意思;
var n1 = 1;
var n2 = 0.123;
var n3 = 3e5;
console.log(n1,n2,n3);
数字整数转换成字符串的方法 parseInt()
数字浮点数转换成字符串的方法 parseFloat()
var n1 =parseInt("123")
console.log(n1)
var n2 =parseInt("abc")
console.log(n2)
var n3 =parseInt("123.333")
console.log(n3)
var n4 =parseFloat("123.333")
console.log(n4)
2 字符串的
拼接法
var a='hello';
var b= 'world';
var c= a+b;
console.log(c);
a 字符串长度.length
var s= 'wangxiaoluo'
var l=s.length
console.log(l)
(开始在网页控制端操作)
b 字符串的空白 .trim() 移除左右空白
.trimLeft() 移除左空白
.trimRight() 移除右空白
c 字符串返回第 n个字符 .charAt(n)
d 字符串的拼接 。concat( x)
e 通过元素查找元素索引的位置 。indexOf()
f 通过元素查找元素索引的位置 。indexOf( ‘元素’,数字n)
找到元素的的索引 从n开始找
g获取索引子序列 .substring(数字n,数字m)
h 切片 。slice() 获取不到返回空
i 字符串的大小写 。tolowercase() 。touppercase()
j 字符串变成列表 。split()
。split(元素,数字) 按照元素 取得多少个
元素的列表
2 数组类似于Python中的列表
a 数组的大小 。length
b 尾部追加元素 。push(元素)
c 获取尾部追加的元素 。pop(元素)
d 头部插入 .unshift(元素)
e 头部移除元素 shift()
f 切片 。slice()
g 翻转 。reverse()
h 排序。sort()
i 把数组变成字符串 。join()
j 数组的拼接 。concat()
三 类似于(某方面类似)Python中的字典数据类型
根据字典的形式写
var a = {'name':'wang','age':11};
console.log(a.name);
console.log(a['age']);
四 null和undefined
- undefined表示的是当声明的变量未初始化时,该变量的默认值是undefined。还有就是函数无明确的返回值时,返回的也是undefined。
- null表示值不存在
undefined表示声明了变量,但是还没有赋值。null声明了变量并且变量是空值。
五 关于符号
= 是赋值的意思 a=1
== 是比较值的大小 1==‘1’
=== 是包括类型一样的 1===‘1’
六
1 if else 的应用 注意分号在大括号的内部而不是外部
var a=10;
if (a>5){
console.log('yes');
}
else{console.log('no');
}
2 if else if 的应用
var a=10;
if (a<5){
console.log('a<5');
}
else if(a=10) {
console.log('a=10');
}
else {
console.log('nono');
}
3 for 循环 固定结构
声明 var l=[] i++ i+=1
for(声明i var i =0(索引); i<l.length(长度); i++(叠加) )
var a= [11,22,33,44,55];
for(var i = 0; i<a.length;i++){
console.log(a[i]);}
for (var i= 0; i <10; i++)
{console.log(i);}
4 while 循环 先声明元素 最后得带增加
var i = 0;
while(i<10){
console.log(i);i++
}
5 switch 流程控制 一种循环 转换 如果不加break 就会继续打印出后边的
var day = 2;
switch(day){
case 0 :console.log('星期天');
case 1 :console.log('星期一');
case 2 :console.log('星期二');
case 3 :console.log('星期三');
case 5 :console.log('星期五');
}
var day = 2;
switch(day){
case 0 :console.log('星期天');
case 1 :console.log('星期一');
case 2 :console.log('星期二');break;
case 3 :console.log('星期三');break;
case 5 :console.log('星期五');break;
}
布尔值 小写
true false
6 三元表达式
固定实例 var a = 0;
var b = 3;
var c= 100>22 ? a:b
console.log(c);
结果是c
------------
关于函数的
1 普通函数的调用
function f1(){
console.log('你好小蛋蛋');
}
f1();
------------------
2 带有返回值的函数 function f3(arg1,arg2){
return (arg1*arg2)
}
var ret= f3(2,4);
console.log(ret)
答案 8
function f4(arg1,arg2){
return arg1 + arg2;
}
var ret = f4('王','罗');
console.log(ret)
---------------
3 带有参数的函数
function f2(name,age){
console.log('姓名:'+name,'年龄:'+age)
}
f2('蛋蛋',20);
二 匿名函数 调用声明的变量
1
*/
var sum = function (arg1,arg2){
return arg1+ arg2
}
ret= sum(2,4);
console.log(ret);
8
和python的对比
sum = lambda x,y,x+y
sum(2,4)
2 自执行函数 不要函数名 直接调用 把函数主体看做一个申明
(function (arg1,arg2){
console.log('自行函数:'+(arg1+arg2));
})(5,10);
函数的全局变量和局部变量
1作用域 局部的
var city = '北京';
function f(){
var city = '上海';
function inner(){
var city='深圳';
console.log(city)
}
inner();
}
f();
2自己局部找不到就找全局的变量
*/
var city = '北京';
function Bar(){
console.log(city);
}
function f(){
var city='上海';
return Bar;
}
var ret = f();
ret();
3 闭包函数:在函数内部 在定义一个函数 找不到对象在找上一级的函数
var city = '北京';
function Bar(){
var city='上海';
function inner(){
console.log(city);
}
return inner;
}
var ret = Bar();
ret()
上海 关于时间
方法一 不指定参数 现在时间*/
var d1 = new Date();
console.log(d1.toLocaleString());
方法2:参数为日期字符串
var d2= new Date('2013/3/22 11:33');
console.log(d2.toLocaleString());
//方法3:参数为毫秒数
var d2= new Date(133333333333);
console.log(d2.toLocaleString());
方法四参数为年月日时分秒毫秒的*/
var d3 = new Date(2004,2,11,11,12,3,400);
console.log(d3.toLocaleString());
注意 1 getDate() 获取的是日 getDay 是获取的是星期
getMonth() 的参数是1-11
function getdate(){
var d = new Date();
var dyear = d.getFullYear();
var dmonth = d.getMonth();
var dDate = d.getDate();
var dHour = d.getHours();
var dMinute = d.getMinutes();
var dweek = d.getDay();
// var week1=['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];
switch (dweek){
case 0:dweek='星期日';break;
case 1:dweek='星期一';break;
case 2:dweek='星期二';break;
case 3:dweek='星期三';break;
case 4:dweek='星期四';break;
case 5:dweek='星期五';break;
case 6:dweek='星期六';break;
} if (dMinute<10){
dMinute='0'+dMinute;
} // console.log(dyear +'-',(dmonth+1) + '-',dDate + ' ',dHour +':',dMinute,week1[dweek])
console.log(dyear +'-',(dmonth+1) + '-',dDate + ' ',dHour +':',dMinute,dweek)
}
getdate(
三、 对象的序列化 和反序列化
序列化 var str=JSON.stringify(obj); 反序列化 var obj=JSON.parse(str);
1序列化
var obj= {'name':'wang','age':11}
var str1=JSON.stringify(obj)
console.log(str1,typeof str1);
2反序列化
var obj= {'name':'wang','age':11}
var str1=JSON.stringify(obj)
console.log(str1,typeof str1);
var obj = JSON.parse(str1)
console.log(obj,typeof obj);
关于正则
创建正则 RegExp 对象方式
一个中括号代表一个元素,
{}大括号表示数字的长度最多和最少的位数;
[a-zA-Z0-9_]{5,11} 表示最少5个
'^ ' 这个表示 表示开头
'$' 这个表示以什么结尾
g 表示引用全局的变量 */
var reg1= new RegExp('^[a-zA-Z][a-zA-Z0-9_]{5,11}$','g');
var s1= 'sdddd';
var s2 = "bc1273";
console.log(reg1.test(s1));
console.log(reg1.test(s2));