22/04/30本周总结

本周总结

本周学习内容

由于各种原因,导致近期学习效率不高,于是我决定换一下脑子,算法先停一停,适当研究一下其他方面的内容,碰巧想起来了前不久看到的一本比较有意思的一本书《JavaScript百炼成仙》,那最近就用一小段时间把这本书看完吧!

学习内容总结

day1

//变量的声明:
/*
直接量包含数值(如10/20)、逻辑值(true/false)、字符串(如“Hello”)、null、undefined、对象和函数
null是一个特殊的关键字,表示没有值;null也是一个原始值, 因为JavaScript是大小写敏感的,所以null和Null、NULL或者其他变 量是有区别的
undefined是一个顶级属性,它代表某一个变量未定义。同样, undefined也是一个原始值
 */

// //原生数据类型:
// var a = "HelloWorld";
// var b = 'HelloWorld';
// var c = 10;
// var d = false;

// //对象数据类型
// var container = {
//     caoyao : "解毒草",
//     feijian : '乌木剑'
// };
// var container1 = {};
// container1.caoyao = "解毒草";
// container.feijian = "乌木剑";

// //如果事先 属性的名称未知,或者调用的属性是动态变化的,就不能使用点号了,使用中括号可以最大程度地提升对象调用属性的灵活度
// var prop = 'caoyao';
// console.log(container[prop]);
//
// var i = 6;
// // while(i--){
// //     console.log(i);
// // }
//
// var fun = function(){};

// //typeof函数
// console.log(typeof(i));
// console.log(typeof(container));
// console.log(typeof(fun));

// //遍历对象
// var yeXiaoFan = {
//     name : "叶小凡",
//     age : 18,
//     eat : function () {
//         console.log("KFC");
//     }
// };

// for(var i in yeXiaoFan){
//     // console.log(i);
//     console.log(i + " = " + yeXiaoFan[i]);
// }

// //数组
// var arr = ["one", "two", "three"];
// console.log(arr);
// //[ 'one', 'two', 'three' ]
// var a = new Array();
// var b = new Array(8);
// b[0] = "one";
// var c = new Array("first", "second", "third");
// console.log(c.length);
// //3

//——————————————————————————————————————————————————————————————

//数组方法

// //push方法:(直接在尾部插入元素,并且原来的Array申请的空间无法使用)
// var a = new Array(8);
// a.push("苹果");
// a.push(3);
// a.push(null);
// console.log(a);
// //[ <8 empty items>, '苹果', 3, null ]
//
// //pop方法:(直接删除数组尾部元素)
// a.pop();
// console.log(a);
// //[ <8 empty items>, '苹果', 3 ]
//
// //splice方法:
// // (插入、删除或替换数组元素,共有三个参数:第一个参数表示起始下标(从零开始),第二个参数表示操作位数,第三个参数表示修改后的元素)
// var b = [11, 22, 33, 44, 55, 66];
// b.splice(2, 2,3, 4);    //可以将一个元素替换成两个元素,
// console.log(b);
// //[ 11, 22, 3, 4, 55, 66 ]
//
// //join方法:(将数组元素以字符串形式输出,元素通过指定的分隔符进行分隔的,而这指定的分隔符就是join方法的参数)
// var str = b.join('~');
// console.log(str);


day2

// //函数定义:
// //跟fun2相比,此种方法可以在语句之前调用,它会被预加载
// function fun1() {
//     //document.write函数表示用JavaScript向页面输出一句话
//     document.write("This is my first function!<br>");
// }
// //跟fun1相比,此种方法定义的函数只能在语句之后使用,因为它没有被预加载
// var fun2 = function(){
//     document.write("This is my second function!<br>")
// }
// fun1();

// //作用域:全局作用域、函数作用域
// //特殊案例:
// if(false){
//     var a = 10;
// }
// console.log(a);
// //underfined

// //函数传参
// function fun(a) {
//     console.log(a);
// }
// fun();
// //underfined
// function fun2 (a, b, c) {
//     var sum = a+b+c;
//     console.log(sum);
// }
// fun2(2);
// //NaN
//
// // 函数默认argument数组:JavaScript中函数传参中会默认使用argument数组记录其中传入的参数
// // 因此可以利用argument这个特性对函数进行未知个数传参,然后对传参数累加计数,实现未知个数参数传参
// function fun3 (a, b, c) {
//     console.log(arguments);
//     a = arguments[0];
//     b = arguments[1];
//     c = arguments[2];
//     var sum = a+b+c;
//     console.log(sum);
// }
// fun3(1, 2, 3, 4);
// // [Arguments] { '0': 1, '1': 2, '2': 3, '3': 4 }
// // 6

// //闭包
// function fun1() {
//     var a = 0;
//     return function () {
//         console.log(a);
//     }
// }
// fun1()();   //第一个()用来调用fun1,第二个()调用内部匿名函数
// //0
// /*
// 正常情况下,我们调用一个函数, 其里面的局部变量会在函数调用结束后销毁,这也是我们在全局作用域里面无法访问函数局部变量的原因。
// 但是,如果你使用了闭包,那么就会让这个局部变量不随着原函数的销毁而销毁,而是继续存在。
// 比如我反复调用这个内部函数,就会发现这个变量a一直存在,就好像是一个 全局作用域里面的变量似的。
// 这种写法就相当于在全局作用域里面定义了一个变量a,然后在函数中操作全局变量。
// 但是用这样的形式操作,也就是利用闭包操作可以减少很多不必要的全局变量。
// 在闭包里面可以访问外部函数中的局部变量,这种变量如何抹除?
// 只要在某一个特定的时刻手动将那个变量赋值为null。JavaScript会自动扫描函数中值为null的变量,一旦找到就会自动清除这些无用的变量。
// */
// function fun2() {
//     var b = 0;
//     return function (i) {
//         b += i;
//         console.log(b);
//     }
// }
// var test = fun2();
// //第一次调用
// test(1);
// //第二次调用
// test(1);
// //第三次调用
// test(1);
// //输出1、2、3

//this:永远指向当前函数的调用者。
//第一个信息,this要么不出现,一旦出现,就一定出现在函数中。
//第二个信息,this指向函数的调用者,换句话说,这个函数是谁调用的,那么this就是谁。

// //JavaScript里面分为全局作用域和函数作用域,在全局作用域里面定义的任何东西,不管是一个变量还是一个函数,其实都是属于window对象的
// //对象可以通过两种方式调用它里面的属性。第一种是点的方式
// function hello(){
//     console.log(this);
// }
// window.hello();
// //第二种方式是使用中括号,即对象[属性名称],属性名称可以是一个字符串,也可以是一个变量
// window['hello']();
// function hello2(){
//     console.log(this);
// }
// new hello2();
// var newObject = new hello2();
// console.log(newObject);

// //回调函数:把一个函数的定义当作参数传递给另一个函数
// function eat (food, howToEat, tiaoliao) {
//     alert(tialiao + "," + howToEat + "吃" + food);
// }
// eat('羊肉串', "笑嘻嘻的", "撒一把孜然");
//
// function eat (food, callback) {
//     callback(food);
// }
// eat(food, function (food) {
//     alert("笑嘻嘻的" + food);
// });

day3:
未完待续……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值