Brendan(布兰登) Eichjavascript
轻量级的编程语言(ECMAscript5或6),
是一种解释性脚本语言(代码不进行预编译),
主要用来向HTML页面添加交互行为,
目前是互联网上最流行的脚本语言,
支持面向对象、命令式和声明式(如函数式编程)风格,html
JavaScript,他和Python同样是一门编程语言,而浏览器内置了JavaScript语言的解释器,因此JavaScript代码在浏览器上就能够运行,
DOM,(Document Object Model)是指文档对象模型,经过它,能够操做HTML文档的相关功能,例如:对标签内容进行删除和替换等(非重点),
BOM,(Browser Object Model)是指浏览器对象模型,经过他,能够操做浏览器相关的功能,例如:浏览器设置定时器,浏览器定时刷新页面。java
1 head标签的script标签里面(alert('xx'), confirm('xx'))python
2 body标签的script标签里面 (建议底部)ajax
3 外部文件引入的方式来使用
建立一个.js结尾的文件,写上js代码
好比:编程
alert('are you ok?');
在想使用这个js代码的html文件中,body标签底部导入json
<script src="test.js"></script>
alert("daoyou"); confirm("daoyou?");
变量定义 var a = 100;数组
var 变量名,,浏览器
变量声明,但没有赋值的时候,变量的值为undefined网络
var n = 11; var n2 = 11.11;
var a = 'abcdef'; var a = new String('ss');
字符串操做
var s = 'hello'; 索引取值: s[1] -- 'e' s.charAt(4); -- 'o' : s.substring(1,3); -- "el" 获取长度:s.length; 移除两端空格: s.trim(); s.trimLeft(); s.trimRight();
var a = true;
var b = false;
undefined 变量声明了,可是没有赋值,此时这个变量是undefined类型
null : 变量不用了,就能够给变量赋值为null,--- object类型
var names = [11,22,33];
names[0] // 索引,索引也是从0开始的 names.push(ele) // 尾部追加元素 示例:a.push('xx'); -- [11, 22, 33, "xx"] names.pop() // 尾部移除一个元素 示例:a.pop(); -- [11, 22, 33] names.unshift(ele) // 头部插入元素 示例:a.unshift('ssss'); -- ["ssss", 11, 22, 33] var ele = obj.shift() // 头部移除一个元素 示例:a.shift(); -- [11, 22, 33] names.splice(index,0,ele) // 在指定索引位置插入元素 names.splice(从哪删(索引),删几个(个数),删除位置替换的新元素(可不写,可写多个)) names.splice(index,1,ele) // 指定索引位置替换元素 names.splice(index,1) // 指定位置删除元素 var names = [11,22,33]; names.splice(1,1,'xx','oo','asdf'); -- [11, "xx", "oo", "asdf", 33] names.slice(start,end) // 切片 示例:a.slice(1,3); names.reverse() // 原数组反转 示例:a.reverse(); names.join(sep) // 将数组元素链接起来以构建一个字符串 示例: var a = ['ni','hao','ma',18] a.join('+'); -- "ni+hao+ma+18" names.concat(val,..) // 链接数组 示例: var a = [11,22]; var b = ['aa','bb'] var c = a.concat(b); c -- [11, 22, "aa", "bb"] names.sort() (辣鸡) // 对原数组进行排序 a.sort(compare); 升序排列
a = [2,3,5,2,22,4,2,3,234,1] function com(a,b){return a-b}; // 自定义排序规则 a.sort(com); 当a-b大于0时,会交换数组中的这两个元素 一直交换直到返回值没有大于0的
自定义对象Object
JavaScript中其实没有字典类型,字典是经过对象object构造出来的
info = { name:'迪丽热巴', "age":18 1:123 } var a = {username:'xx',password:'123'}; //键能够不加引号 // 键能够是数字,但取值时必须是info["1"] var a = info['name']/a = info.name // 经过键取值必须加引号(info.name) info['age'] = 20 // 修改 info['gender'] = 'male' // 新增 delete info['age'] // 删除
typeof 变量名; typeof n;
单行//
多行 /**/
if (a == 1){ //判断条件写在小括号里面,大括号里面写条件判断成功后的代码内容 console.log('1111'); (相似print) } else{ console.log('222'); }
if(a > 1){ // console.log('1111'); // var hhhh = document.getElementById('d1'); // hhhh.innerText = '彭于晏'; }else if(a<1){ console.log('2222'); }else { console.log('3333'); }
> < == != >= <= === !== var a = 2; var b = '2'; a == b; true 弱等于 a === b; false 强等于 a != b; false a !== b; true
+ - * / % ++ -- ++ 自增 1 -- 自减 1 var a = 2; a++ 先执行逻辑 +1 ++a 先+1 再执行逻辑 简单示例: if (++a === 4){ //(a++ === 3) console.log('xxx');} else{ console.log('ooo');};
用于判断等于某些值(只能放数字)
var num = 200; switch(num++){ case 10: console.log('未成年'); break; case 18: console.log('成年'); break; case 35: console.log('老年'); break; case 100: console.log('....'); break; default: console.log('太大了');};
try{ console.log(xx); } catch(e){ console.log(e); } finally{ console.log('sssss'); }
var names = ['老男孩', '肖峰', '吴超'] for(var i=0;i<names.lenght;i++){ js里for变例的i为索引 console.log(i, names[i]) } 循环自定义对象--python字典 for (var i in d){ console.log(i,d[i]); #不要用d.i来取值,没有 i 属性 }
function f1(a,b){ return a+b; } // 执行: f1(1,2) -- 3 function f1(a,b){ return a,b; }; f1(1,2); //不能返回多个值: 2
通常用于当作参数使用 function (arg){ return arg + 1; } —————————————————————————————— var a = function (a,b){ console.log('xxx'); } var d = {'xx':'oo','f':function (a,b){ console.log('xxx'); }}; 执行:d.f(1,2); -------'xxx'
通常用于作数据隔离使用,由于JS中是以函数为做用域,因此当js代码比较多时,经过自执行函数作数据隔离
(function () { alert('自执行函数!') })()
var info = {name:'alex',age:19,girls:['钢弹','铁锤']} var infoStr = JSON.stringify(info) console.log(infoStr) # '{"name":"alex","age":19,"girls":["钢弹","铁锤"]}'
//反序列化时键不能是数字且必须有双引号 var infoStr = '{"name":"alex","age":19,"girls":["钢弹","铁锤"]}' var info = JSON.parse(infoStr) console.log(info) 应用场景: 网络中数据传输本质上是基于字符串进行,若是想要把一个js的对象经过网络发送到某个网站, 就须要对对象进行序列化而后发送。(ajax会常常使用) 各语言之间数据类型不必定互通,须要一个中间人(json) python->json->...->json->java