day12-js基础

js:JavaScript
1.ECMAScript5基础语法
es1 2 4 5: 没有类的概念(伪面向对象) 6 7 8
历史背景:node.js
打印控制台输出:console.log();

前端语言:不能操作操作系统和文件
后端语言

引入方式09:
src引入的资源
全局概念window,function关键字
int类型是蓝色,str是黑色
注释,普通函数,函数对象
数值加字符串自动拼接成数字
用户输入:prompt
直接量、字面量
浏览器解释时,会自动变量提升
typeof检查类型
拼接与加
es6语法:模板字符串``${}。。
document.write()输出在屏幕中
parseInt()将字符串转为数字

5/0 Infinity:number类型 。。黑灰。。

a++ ++a弄清!
==比较值 ===比较值和数据类型
强制类型转换


流程控制10
if else if
switch case穿透,遇到break跳出循环 要加break
直角三角形、“锥形”


常用内置对象11
var arr = [1,2,3];
console.log(arr);


split参数,指拿到几个结果
自己演示一下字符串例子即可

date
math.random随机数 min+Math.random()*(max-min)

var ran = Math.random();
console.log(ran);[0,1)

小结:
(1)声明变量 var
(2)String Number boolean undefine
(3) Array Math
toNumber()
toString()


学习网站:w3c,开发者网络https://developer.mozilla.org/zh-CN/
 
  1 <!DOCTYPE html>
  2 <html>
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>js练习</title>
  6 </head>
  7 <body>
  8 <script type="text/javascript">
  9     // 1.控制台输出:console.log("")
 10     //  console.log('2')
 11     //2.弹出警告框:alert("")
 12     // alert('welcome')
 13     //3.用户输入:prompt()语句
 14     // var a=prompt('今天是什么天气?');
 15     // console.log(a);
 16     //4.prompt()语句中,用户不管输入什么内容,都是字符串。
 17     // alert("从前有座山");                //直接使用,不需要变量
 18     // var a = prompt("请输入一个数字");   // 必须用一个变量,来接收用户输入的值
 19     //5.变量定义
 20     //         var a = 100;    //定义,并且赋值100
 21     // console.log(a);
 22     //6.typeof()表示“获取变量的类型”
 23     // var a = 100;            //定义了一个变量a,并且赋值100
 24     //     console.log(typeof a);  //输出a变量的类型
 25     //7.在JavaScript中,只要是数,就是数值型(number)的。无论整浮、浮点数(即小数)、无论大小、无论正负,都是number类型的。
 26     //8.字符串型:string
 27     // var a = "abcde";
 28     // var b = "路飞";
 29     // var c = "123123";
 30     // var d = "哈哈哈哈哈";
 31     // var e = "";     //空字符串
 32     //
 33     // console.log(typeof a);
 34     // console.log(typeof b);
 35     // console.log(typeof c);
 36     // console.log(typeof d);
 37     // console.log(typeof e);
 38     //9.如果加号两边都是数值,此时是加。否则,就是连字符(用来连接字符串)。
 39     // console.log("我" + "爱" + "你");   //连字符,把三个独立的汉字,连接在一起了
 40     // console.log("我+爱+你");           //原样输出
 41     // console.log(1 + 2 + 3);             //输出6
 42     //10.(注意,字符串 - 数值 = 数值)
 43     // var a = "3";
 44     // var b = 2;
 45     // console.log(a - b);
 46     //11.parseInt():字符串转数字
 47     //(1)带有自动净化的功能;只保留字符串最开头的数字,后面的中文自动消失。
 48     // console.log(parseInt("2018你真帅!!"));
 49     //(2)自动带有截断小数的功能:取整,不四舍五入。
 50     // var a = parseInt(5.8) + parseInt(4.7);
 51     // // console.log(a);   9
 52     // var a = parseInt(5.8 + 4.7);
 53     // console.log(a);   10
 54     // var  stringNum = '1233.33yudasdiusaudsaugd';
 55     // var num2 =  Number(stringNum);
 56     // console.log(num2);
 57     // console.log(parseInt(stringNum))
 58     // console.log(parseFloat(stringNum));
 59 
 60 
 61     //   二、 数据类型
 62     // 1)基本数据类型
 63     //1.number
 64     var a = 123;
 65     //typeof 检查当前变量是什么数据类型
 66     console.log(typeof a)
 67     //特殊情况
 68     var a1 = 5 / 0;
 69     console.log(typeof a1) //Infinity 无限大. number类型
 70     // 2.string
 71     var str = '123'
 72     console.log(typeof str)
 73     // 3.boolean
 74     var b1 = false;
 75     console.log(typeof b1)
 76     // 4.null
 77     var c1 = null;//空对象. object
 78     console.log(c1)
 79     // 5.undefined
 80     var d1;
 81     //表示变量未定义
 82     console.log(typeof d1)
 83     // 2.引用数据类型
 84     // Function
 85     // Object
 86     // Arrray
 87     // String
 88     // Date
 89 
 90 
 91     // 三、运算符
 92     // 1.自增自减
 93     var a = 5, b = 2
 94     // var x=a++
 95     // console.log(x,a)
 96     // //5 6
 97 
 98     //     var x=++a
 99     //     console.log(x,a)
100     // //    6 6
101 
102     //     var x=a--
103     //     console.log(x,a)
104     // // 5  4
105     //     var x=--a
106     //     console.log(x,a)
107     // 4 4
108     //     2.比较运算符
109     //    ===等同于(值和类型均相等)  ==等于
110     //    !==不等同于        !=不等于
111     var x = 5
112     // console.log(x===5,x==='5')   //true false
113     //     console.log(x==5,x=='5')   //true true
114     // console.log(x!==5,x!=='5')  //false true
115     // 3.特殊:字符串拼接+字符串运算 特殊情况。python中有拼接字符串中更简便的办法,其实在js中也有,大家可以百度引擎搜索es6模板字符串。(扩展)
116     var firstName = '';
117     var lastName = '马哥';
118     var name = '伊拉克';
119     var am = '美军';
120     // 字符串拼接
121     var str = "2003年3月20日," + name + "战争爆发,以美军为主的联合部队仅用20多天就击溃了萨达姆的军队。这是继十多年前的海湾战争后," + am + "又一次取得的大规模压倒性军事胜利。"
122     // var fullStr = str;
123     // console.log(fullStr)
124     //
125     // var fullName = firstName + " " + lastName;
126     // console.log(fullName)
127     //     结果:2003年3月20日,伊拉克战争爆发,以美军为主的联合部队仅用20多天就击溃了萨达姆的军队。这是继十多年前的海湾战争后,美军又一次取得的大规模压倒性军事胜利。 练习.html:124:1
128     // 小 马哥
129 
130 
131     // 不能对字符串进行+运算 只能拼接
132     // var a1 = '1';
133     // var a2 = '2';
134     // console.log(a1 - a2) //-1
135     //
136     // var b1 = 'one';
137     // var b2 = 'two';
138     //
139     // // NaN. ==== not a number 是number类型
140     // console.log(b1 * b2) //NaN
141     // console.log(typeof(b1 * b2)) //number
142 
143 
144     // 四、数据类型转换
145     // 1.将数值类型转换成字符串类型
146     // var n1 = 123;
147     // var n2 = '123';
148     // var n3 = n1+n2;
149     // // 隐式转换
150     // console.log(typeof n3);
151     //
152     // // 强制类型转换String(),toString()
153     // var str1 = String(n1);
154     // console.log(typeof str1);
155     //
156     // var num = 234;
157     // console.log(num.toString())
158     //     // 2.将字符串类型转换成数值类型
159     // var  stringNum = '789.123wadjhkd';
160     // var num2 =  Number(stringNum);
161     // console.log(num2)
162     //
163     // // parseInt()可以解析一个字符串 并且返回一个整数
164     // console.log(parseInt(stringNum))
165     // console.log(parseFloat(stringNum));
166     // 3.任何数据类型都可以转换为boolean类型
167     var b1 = '123';
168     var b2 = 0;   //false
169     var b3 = -123
170 
171     var b4 = Infinity;
172     var b5 = NaN;
173 
174     var b6; //undefined
175     var b7 = null;
176 
177     // 非0既真
178     // console.log(Boolean(b4)) //true
179     // console.log(Boolean(b5))  //false
180     // console.log(Boolean(b6))  //false
181     // console.log(Boolean(b7))  //false
182 
183     // 五、流程控制
184     // 1.1.if 、if-else、if-else if-else
185     // var ji  = 20;
186     // if(ji >= 20){
187     //     console.log('恭喜你,吃鸡成功,大吉大利')
188     // }
189     // alert('alex');//下面的代码还会执行
190 
191     // var ji = 20;
192     // if (ji >= 20) {
193     //     console.log('恭喜你,吃鸡成功,大吉大利')
194     // } else {
195     //     console.log('很遗憾 下次继续努力') //不运行
196     // }
197     // // 注意:浏览器解析代码的顺序 是从上往下执行,从左往右
198     // if (true) {
199     //     //执行操作
200     // } else if (true) {
201     //     //满足条件执行
202     // } else if (true) {
203     //     //满足条件执行
204     // } else {
205     //     //满足条件执行
206     // }
207 
208     // 2.逻辑与&&、逻辑或||
209     // //1.模拟  如果总分 >400 并且数学成绩 >89分 被清华大学录入
210     // //逻辑与&& 两个条件都成立的时候 才成立
211     //     var sum=404;
212     //     var math=9;
213     // if(sum>400 && math>90){
214     //     console.log('清华大学录入成功')
215     // }else{
216     //     alert('高考失利')
217     // }
218     //
219     // //2.模拟 如果总分>400 或者你英语大于85 被复旦大学录入
220     // //逻辑或  只有有一个条件成立的时候 才成立
221     //     var english=88;
222     // if(sum>500 || english>85){
223     //     alert('被复旦大学录入')
224     // }else{
225     //     alert('高考又失利了')
226     // }
227     // 3.switch   case穿透,遇到break跳出循环
228     var gameScore = 'better';
229 
230     switch (gameScore) {
231 
232 //case表示一个条件 满足这个条件就会走进来 遇到break跳出。break终止循环。如果某个条件中不写 break,那么直到该程序遇到下一个break停止
233 
234         case 'good':
235             console.log('玩的很好')
236             //break表示退出
237             break;
238         case  'better':
239             console.log('玩的老牛逼了')
240         // break;
241         case 'best':
242             console.log('恭喜你 吃鸡成功')
243             break;
244 
245         default:
246             console.log('很遗憾')
247 
248     }
249     // 4.while循环    输出1-9
250     // var i = 1; //初始化循环变量
251     //
252     // while(i<=9){ //判断循环条件
253     //     console.log(i);
254     //     i = i+1; //更新循环条件
255     // }
256 
257     // // 5.do_while   输出3-9
258     // //不管有没有满足while中的条件do里面的代码都会走一次
259     // var i = 3;//初始化循环变量
260     // do{
261     //
262     //     console.log(i)
263     //     i++;//更新循环条件
264     //
265     // }while (i<10) //判断循环条件
266 
267     // 6.for循环   输出1-10
268     // for(var i = 1;i<=10;i++){
269     //      console.log(i)
270     //  }
271 
272     // // 7.双重for循环  打印3行6个*
273     // for (var i = 1; i <= 3; i++) {
274     //
275     //     for (var j = 0; j < 6; j++) {
276     //         document.write('*')
277     //     }
278     //
279     //     document.write('<br>')
280     // }
281     // // 小作业:
282     // 1.在浏览器中输出直角三角形
283     for (var i = 1; i <= 6; i++) {
284         for (var j = 1; j <= i; j++) {
285             document.write("*");
286         }
287 
288         document.write('<br>');
289     }
290 
291     // 2.在浏览器中输出树形
292     for (var i = 1; i <= 6; i++) { //行数
293 
294         //控制我们的空格数
295         for (var s = i; s < 6; s++) {
296             document.write('&nbsp;')
297         }
298 
299         for (var j = 1; j <= 2 * i - 1; j++) {
300             document.write('*')
301         }
302         document.write('<br>')
303 
304     }
305 
306     // // 六、常用内置对象
307     // //1.数组Array
308     // // 1.数组的创建方式
309     // // 字面量方式创建(推荐大家使用这种方式,简单粗暴)
310     // var colors = ['red', 'color', 'yellow'];
311     // // 使用构造函数(后面会讲)的方式创建 使用new关键词对构造函数进行创建对象
312     // var colors2 = new Array();
313     // // 2.数组的赋值
314     // var arr = [];
315     // //通过下标进行一一赋值
316     // arr[0] = 123;
317     // arr[1] = '哈哈哈';
318     // arr[2] = '嘿嘿嘿'
319     // console.log(arr)
320     // // 3.数组的常用方法
321     // //     3.1 数组的合并 concat()
322     // var north = ['北京', '山东', '天津'];
323     // var south = ['东莞', '深圳', '上海'];
324     //
325     // var newCity = north.concat(south);
326     // console.log(newCity)  //["北京", "山东", "天津", "东莞", "深圳", "上海"]
327     //
328     // // 3.2 join() 将数组中的元素使用指定的字符串连接起来,它会形成一个新的字符串
329     // var score = [98, 78, 76, 100, 0];
330     // var str = score.join('|');
331     // console.log(str);//98|78|76|100|0
332     //
333     // // 3.3 将数组转换成字符串 toString()---常用
334     // var score = [98, 78, 76, 100, 0];
335     // //toString() 直接转换为字符串  每个元素之间使用逗号隔开
336     // var str = score.toString();
337     // console.log(str);//98,78,76,100,0
338     //
339     // // 3.4 slice(start,end); 返回数组的一段,左闭右开
340     // var arr = ['张三', '李四', '王文', '赵六'];
341     // var newArr = arr.slice(1, 3);
342     // console.log(newArr);//["李四", "王文"]
343     //
344     // // 3.5 pop 移除数组的最后一个元素
345     // var arr = ['张三', '李四', '王文', '赵六'];
346     // var newArr = arr.pop();
347     // console.log(newArr);//赵六
348     // console.log(arr);//["张三", "李四","王文"]
349     //
350     // // 3.6 push() 向数组最后添加一个元素,并返回新的长度
351     // var arr = ['张三', '李四', '王文', '赵六'];
352     // var newArr = arr.push('小马哥');
353     // console.log(newArr);//5
354     // console.log(arr);//["张三", "李四","王文","赵六","小马哥"]
355     //
356     // // 3.7 reverse() 反转数组
357     // var names = ['alex', 'xiaoma', 'tanhuang', 'angle'];
358     // names.reverse();
359     // console.log(names); //["angle", "tanhuang", "xiaoma", "alex"]
360     //
361     // // 3.8 sort对数组排序
362     // var names = ['alex', 'xiaoma', 'tanhuang', 'abngel'];
363     // names.sort();
364     // console.log(names);// ["abngel", "alex", "tanhuang", "xiaoma"]
365     //
366     // // 3.9 判断是否为数组:isArray()
367     // // 布尔类型值 = Array.isArray(被检测的值) ;
368     //
369     // // 3.10shift() 移除数组的第一个元素
370     // var arr = ['张三', '李四', '王文', '赵六'];
371     // var newArr = arr.shift();
372     // console.log(newArr);//张三
373     // console.log(arr);//["李四", "王文", "赵六"]
374 
375     // // 3.11unshift()往数组的开头添加一个元素,并且返回新的长度
376     // var arr = ['张三', '李四', '王文', '赵六'];
377     //   var newArr = arr.unshift('小马哥');
378     //   console.log(newArr);//5
379     //   console.log(arr);//["小马哥", "张三", "李四", "王文", "赵六"]
380     //
381     //   // 3.12length 它是一个属性,唯一的一个,获取数组的长度,可以结合for循环遍历操作
382 
383 
384     //     // 4.字符串String方法
385     // // 4.1 chartAt() 返回指定索引的位置的字符
386     // var str = 'alex';
387     // var charset = str.charAt(2);
388     // console.log(charset);//e
389     //
390     //     // 4.2 concat 返回字符串值,表示两个或多个字符串的拼接
391     // var str1 = 'al';
392     // var str2  = 'ex';
393     // console.log(str1.concat(str2,str2));//alexex
394     //
395     //     // 4.3 replace(a,b) 将字符串a替换成字符串b
396     // var a = '1234567755';
397     // var newStr = a.replace("4567","****");
398     // console.log(newStr);//123****755
399     //
400     //     // 4.4 indexof() 查找字符的下标,如果找到返回字符串的下标,找不到则返回-1 。跟seach()方法用法一样
401     // var str = 'alex';
402     // console.log(str.indexOf('e'));//2
403     // console.log(str.indexOf('p'));//-1
404     //
405     //     // 4.5 slice(start,end) 左闭右开 分割字符串
406     //     var str = '小马哥';
407     // console.log(str.slice(1,2));//408     //
409     //     // 4.6 split('a',1) 以字符串a分割字符串,并返回新的数组。如果第二个参数没写,表示返回整个数组,如果定义了个数,则返回数组的最大长度
410     // var  str =  '我的天呢,a是嘛,你在说什么呢?a哈哈哈';
411     // console.log(str.split('a'));//["我的天呢,", "是嘛,你在说什么呢?", "哈哈哈"]
412     //
413     //     // 4.7 substr(statr,end) 字符串截取,左闭右开
414     // var  str =  '我的天呢,a是嘛,你在说什么呢?a哈哈哈';
415     // console.log(str.substr(0,4));//我的天呢
416     //
417     //     // 4.8 toLowerCase()转小写
418     // var str = 'XIAOMAGE';
419     // console.log(str.toLowerCase());//xiaomage
420     //
421     //     // 4.9 toUpperCase()转大写
422     // var str = 'xiaomage';
423     // console.log(str.toUpperCase());//XIAOMAGE
424     //
425     // // 特别:
426     // //1.将number类型转换成字符串类型
427     // var num = 132.32522;
428     // var numStr = num.toString()
429     // console.log(typeof numStr) //string
430     //     //四舍五入
431     // var newNum = num.toFixed(2)
432     // console.log(newNum) //132.33
433 
434     // // 5.Date日期对象
435     // // 创建日期对象只有构造函数一种方式,使用new关键字
436     // //创建了一个date对象
437     // var myDate = new Date();
438     //
439     // //创建日期对象
440     // var myDate=new Date();
441     // console.log(myDate) //Thu Jul 12 2018 20:50:01 GMT+0800 (中国标准时间)
442     // //获取一个月中的某一天、月、年、星期、时、分、秒
443     // console.log(myDate.getDate()); //12
444     // console.log(myDate.getMonth()); //6   一般需要+1
445     // console.log(myDate.getFullYear()); //2018
446     // console.log(myDate.getDay()); //4
447     // console.log(myDate.getHours()); //20
448     // console.log(myDate.getMinutes()); //50
449     // console.log(myDate.getSeconds()); //1
450     //
451     // //返回本地时间
452     // console.log(myDate.toLocaleString());//2018/7/12 下午8:51:49
453 
454     // // 6.Math 内置对象
455     // //  6.1 Math.ceil() 向上取整,'天花板函数'
456     // var x = 1.234;
457     // //天花板函数  表示大于等于 x,并且与它最接近的整数是2
458     // var a = Math.ceil(x);
459     // console.log(a);//2
460     //
461     // // 6.2 Math.floor 向下取整,'地板函数'
462     // var x = 1.234;
463     // // 小于等于 x,并且与它最接近的整数 1
464     // var b = Math.floor(x);
465     // console.log(b);//1
466     //
467     //     // 6.3 求两个数的最大值和最小值
468     // //求 两个数的最大值 最小值
469     // console.log(Math.max(2,5));//5
470     // console.log(Math.min(2,5));//2
471     //
472     //     // 6.4 随机数 Math.random()
473     // var ran = Math.random();
474     // console.log(ran);//[0,1)
475     //
476     // // 如果让你取100-200之间的随机数,怎么做?
477     // console.log(100+ran*100)
478     // // 背过公式:min - max之间的随机数: min+Math.random()*(max-min)
479     // console.log(Math.floor(100+Math.random()*500));//100-600之间的整数
480 
481 
482     // 七、函数
483     // console.log("hello world");
484     //    sayHello();     //调用函数
485     //    //定义函数:
486     //    function sayHello(){
487     //        console.log("hello");
488     //        console.log("hello world");
489     //    }
490     //
491     //
492     //    sum(3,4);
493     //        sum("3",4);
494     //        sum("Hello","World");
495     //
496     //        //函数:求和
497     //        function sum(a, b) {
498     //            console.log(a + b);
499     //        }
500     //
501     //    // 结果:7 34 HelloWorld
502 
503     // 函数的返回值
504     //     console.log(sum(3, 4));
505     //
506     //         //函数:求和
507     //         function sum(a, b) {
508     //             return a + b;
509     //         }   //7
510 
511 
512     // 八、伪数组 arguments
513     // arguments代表的是实参。有个讲究的地方是:arguments只在函数中使用。
514     // (1)返回函数实参的个数:arguments.length
515     // fn(2, 4);
516     // fn(2, 4, 6);
517     // fn(2, 4, 6, 8);
518 
519     // function fn(a, b, c) {
520     //     console.log(arguments);
521     //     console.log(fn.length);         //获取形参的个数
522     //     console.log(arguments.length);  //获取实参的个数
523     //
524     //     console.log("----------------");
525     // }
526 
527     // (2)之所以说arguments是伪数组,是因为:arguments可以修改元素,但不能改变数组的长短。举例:
528     //   fn(2,4);
529     //     fn(2,4,6);
530     //     fn(2,4,6,8);
531 
532     // function fn(a,b) {
533     //     arguments[0] = 99;  //将实参的第一个数改为99
534     //     arguments.push(8);  //此方法不通过,因为无法增加元素
535     // }
536 
537     // 清空数组的几种方式:
538     var array = [1, 2, 3, 4, 5, 6];
539 
540     // array.splice(0);      //方式1:删除数组中所有项目
541     // array.length = 0;     //方式1:length属性可以赋值,在其它语言中length是只读
542     // array = [];           //方式3:推荐
543     console.log(array)
544 
545 
546     console.log(window); //一个全局变量的列表
547     console.log(document);  //页面上所有布局
548     console.log(document.documentElement); //html中所有的内容
549     console.log(document.body);//html的body中所有的内容
550 
551     // 九、关于DOM的事件操作
552 
553 
554 </script>
555 
556 
557 </body>
558 </html>
js基础例子

数组的常用方法

字符串常用方法

date




posted @ 2018-07-12 21:31  yuyou123  阅读(139)  评论(0编辑  收藏  举报