前端开发最基本的就是HTML + CSS + JS了,刚入行时听到的介绍就是,写页面亦如造房子,HTML为搭户型,CSS是房屋装饰,JS则比如是水电安装,是最后的功能了。 下面咱们开始装水电了.....javascript
ECMAScript是由欧洲计算机制造商协会(European Computer Manufacturers Association)颁布的关于JavaScript的语言规范,即JS的发展是以ECMAScript为标准进行的。自1997年发布首版以来,已经历经N多版,好像我还在百度搜索let、const等ES6语法时,据说如今倏的就ES10都出草案了!目前我的开发主要是 ES5/6。ECMAScript版本历史html
1. 输出
window.alert('hello guys!')//弹出警告窗 document.write('I am contents.');//将内容写到HTML文档中 console.log('我在控制台输出!','others');//将内容输出到浏览器控制台 console.log('Let us play %s this %s !','basketball','friday');//%s 字符串占位符===> // 'Let us play basketball this friday' var familyInfo = { name:'前端牛逼', id:666 } console.log('家族ID是 %d,家族信息是 %O',1235,familyInfo)//%d 整数占位符 %O对象占位符 //固然,若是以为这样的log输出有点“脱裤子放屁”,仍是直接以下不用占位符吧 console.log('家族ID是:',familyID ,'家族信息是',familyInfo); //有一些用的相对少些的Log输出: console.debug(object) //在控制台输出一条消息,包含一个指向代码调用位置的超连接。假如是直接在控制台输入该命令,//就不会出现超连接(和console.log()同样)。 console.info(object) //在控制台输出一条带有“信息”图标的消息和一个指向代码调用位置的超连接。 console.warn(object) //在控制台输出一条带有“警告”图标的消息和一个指向代码调用位置的超连接。 console.error(object) //在控制台输出一条带有“错误”图标的消息和一个指向代码调用位置的超连接。 console.dir(object) //以列表形式输出一个对象的全部属性,有点和你查看DOM窗口相相似。
2.运算
var num = (5 + 2)*10; // 70 = + - * / %(取膜 ) ++ -- 10%3// 1 //注意一下这两个区别 var i = 0; var num = i++;//0 var num1 = ++i;//1 //比较运算 var count = 0; if(count > 0){console.log('num 大于 0')}// JS比较运算符中: == === !== != < > null == undefined //true null === undefined //false
//逻辑运算符 // && and (2 < 10 && 3 > 1) //true // || or (a || b) //只要一个为true,结果即为true // ! not var num = 0; !num //true(将num转换为布尔值再取反);
3.javascript 关键字和保留字(备胎咯)
关键字 (用于标识要执行的操做): break、case、catch、continue、default、delete、do、else、finally、for、function、
if、in、instanceof、new、return、switch、this、throw、try、typeof、var、voidjava
保留字(当前的语言版本中并无使用,但在之后 JavaScript 扩展中会用到):abstract
boolean、byte、char、class、const、debugger、double、enum、export、extends、final、float、goto、implements、import、intes6
4.注释
//单行注释 //console.log('num'); alert('error') // 单行末注释 //块注释 /* document.getElementById("myH1").innerHTML="Welcome to my Homepage"; document.getElementById("myP").innerHTML="This is my first paragraph."; */
5.条件语句
if(isVVmusic){ //客户端内 }else{ //端外 } if(sex == '男'){ console.log('小哥哥') }else if(sex == '女'){ console.log('小姐姐') }else{ console.log('萨瓦迪卡~') } switch(res.retCode){ case 1000: console.log('建立活动成功!') break; case 1001: console.log('不在申请时间内!') break; case 1002: console.log('userID不存在!') break; default: console.log('参数不正确'); } //有一种状况可能只是要根据条件去取一个值,好比toast的提示文案,这时用条件判断显得裹脚布又长又臭的时候,能够考虑另外一种方式好比: var toastTexts = { '1000':'建立活动成功!', '1001':'不在申请时间内!', '1002':'参数不正确', '1003':'userID不存在!', '1008':'比赛以结束', ...... } if(res && res.retCode){ let toast = toastTexts[res.retCode]; alert(toast); }
6.循环语句正则表达式
for (语句 1; 语句 2; 语句 3){数组
被执行的代码块
}
语句 1 (代码块)开始前执行浏览器
语句 2 定义运行循环(代码块)的条件函数
语句 3 在循环(代码块)已被执行以后执行this
for (var i =0 ;i<list.length;i++){ var item = list[i]; console.log(item.name); }
var res = { name:'刘德华', age:50, place:'hongkong' } for (var key in res){ console.log('%O : %O',key,res[key]); }
var i =0; while (i<5) { if(i === 2) break; console.log('当前数字是'+ i); i++; }
do/while 循环是 while 循环的变体。该循环会在检查条件是否为真以前执行一次代码块,而后若是条件为真的话,就会重复这个循环。
var i = 0; do{ console.log('number is '+ i) i++; } while (i<5);
break 语句用于跳出循环。(不能够用于es6的forEach)
continue 用于跳过循环中的一个迭代。
Javascript的数据类型能够分为:基本数据类型(值类型)和引用数据类型
从上图能够看出,基本数据类型保存的是具体的值,当将a变量的值赋值给b变量,b变量以后的任何 操做就和a无关了;而当把引用数据类型的值赋值给些个( C、D )变量,C获得的是一个引用地址,一样D也是,当操做C或者D中某一个的属性时,其实是顺着这条一样的引用地址改了堆内存中的值,所以其它引用了这一相同地址的变量再取自身当中某属性值时,都是被更改过的。
typeof 123 //'number' typeof 'abc' //'string' typeof true //'boolean' typeof undefined //'undefined' typeof null //'object' typeof { } //'object' typeof [ ] //'object' typeof console.log //'function'
1.String
'let us play basketball!'.charAt(0);//'l' 返回索引位置0处的字符 'let us play basketball!'.charAt(100000);// '' 若是参数 大于 'string'.length-1 (找不到)即返回 ''
'let us play basketball!'.charCodeAt(1);// 101 'let us play basketball!'.charCodeAt(1000) //NaN 若是参数 大于 'string'.length-1 (找不到)即返回 NaN
String.fromCharCode(97, 98, 99, 100, 101); //'abcde'
'let us play basketball!'.indexOf('us');// 4 'let us play basketball!'.indexOf('us',5);// -1 找不到则返回-1
'let us play basketball!'.lastIndexOf('b');// 18 'let us play basketball!'.lastIndexOf(' ',5);// 3 从索引为5处开始往前查找
-search(substr/regexp) 检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。它会返回第一个匹配的子字符串的起始位置,若是没有匹配的,则返回-1。
'let us play basketball!'.search('us');// 4 'let us play basketball!'.search(/us/);// 4 'let us play basketball!'.search(/usb/);// -1
'let us play basketball!'.substring(4,6);// 'us' //注意是包括开始项位置,不包括结束项位置 'let us play basketball!'.substring(7);// "play basketball!" //第二个参数不传,则默认截取到最后一位 'let us play basketball!'.substring(1000);//'' 参数大于字符串length时返回 ""
'let us play basketball!'.slice(0,3);// 'let' 'let us play basketball!'.slice(-5,-1);// 'ball' //截取顺序依然是从左到右
'let us play basketball!'.replace('us','me');// "let me play basketball!" 'let us play basketball!'.replace(/basketball/,'baseball');// "let us play baseball!" 'let us play basketball!'.replace(/ /g,'--');// "let--us--play--basketball!" 利用g修饰符所有替换
'let us play basketball!'.split(' ');//["let", "us", "play", "basketball!"] 'let us play basketball!'.split(/ /);//["let", "us", "play", "basketball!"]
'let us play basketball!'.toUpperCase();//LET US PLAY BASKETBALL!"
2.Array
var arr1 = [1,2,3]; arr1.push(3,4,5);//6 console.log(arr1);//[1, 2, 3, 3, 4, 5]
var arr1 = [1,2,3]; arr1.pop();//3 console.log(arr1);//[1, 2]
var arr1 = [1,2,3]; arr1.shift();//1 console.log(arr1);//[2,3]
var arr1 = [1,2,3]; arr1.unshift(0);// 4 console.log(arr1);//[0,1,2,3]
var arr1 = [1,2,3], arr2 = [4,5,6], arr3; arr3 = arr1.concat(arr2); console.log(arr1);// [1,2,3] console.log(arr2);//[4,5,6] console.log(arr3);//[1,2,3,4,5,6]
var arr1 = ['let','us','play','basketball']; var str1 = arr1.join(' '); console.log(str1);//"let us play basketball"
var arr1 = ['let','us','play','basketball']; var arr2 = arr1.splice(0,2); console.log(arr1);// ["play", "basketball"] console.log(arr2); //["let", "us"]
var arr1 = [1,2,3,4,5,6]; var arr2 = arr1.slice(1,3); console.log(arr1);// [1, 2, 3, 4, 5, 6] console.log(arr2); // [2, 3] 也是包括开始位置项,不包括结束位置项
var arr1 = ['a','b','c','d']; var arr2 = arr1.reverse(); console.log(arr1);//["d", "c", "b", "a"] console.log(arr2);//["d", "c", "b", "a"]
var arr1 = [1,5,6,8,2]; arr1.sort(function(a,b){return a-b});//[1, 2, 5, 6, 8] 升序 arr1.sort(function(a,b){return b-a});// [8, 6, 5, 2, 1] 降序
3.Object
var obj1 = {name:'kobe',age:18}; obj1.hasOwnProperty('name');//true obj1.hasOwnProperty('height');//false
var Plays = function(obj){ this.name = obj.name; this.age = obj.age; } var player1 = new Plays({name:'kobe',age:18}); console.log(Plays.prototype.isPrototypeOf(player1));//true
var obj1 = {a:1}; obj1.propertyIsEnumerable('a');//true obj1.propertyIsEnumerable('__proto__');//false
var obj1 = {a:1}; obj1.toString();//"[object Object]"
4.Number
10.235233.toFixed(1);///10.2
23.3336.toPrecision(2);//23 111.toPrecision(2); //Uncaught SyntaxError: Invalid or unexpected token
var boo = new Boolean(false) document.write(boo.valueOf());//false
以上就是个人分享内容了!