总的来说,这周的进程没有那么快,还没有全身心投入进去,可能是刚到深圳还没有完全适应吧!从1月6号开始学习js,在b站上找了一个学习课程,每天看视频学习,这几天学的内容有:认识数据类型、数据类型转换、递增和递减运算符、逻辑运算符、赋值运算符、流程控制的三种结构、三元运算符、switch分支语句、对象的分类、返回值类型、构造函数的执行流程、原型prototype
希望下周能够掌握更多的知识点,能够更好的控制自己,自律一点、主动性强一些。
下面是我做的一部分笔记。
数据类型分类:
- 简单数据类型:number,string,boolean,undefined,null
- 复杂数据类型:object
数据类型转换(使用表单、prompt获取过来的的数据默认是字符串类型):
- 转化为字符串类型:
- toString() 转成字符串 var num=1;alert(num,toString());
- String()强制转换 转成字符串 var num=1;alert(String(num));
- 加号拼接字符串 和字符串拼接的结果都是字符串 var num=1;alert(num+"我是");
- 转换为数字型
- parselnt(string)函数 将string类型转成整数值型 parselnt('78')
- parseFloat(string)函数 将string类型转成浮点数值型 parseFloat('78.21')
- Number()强制转换函数 将string类型转换成数值型 Number('12')
- js隐式转换(- * /) 利用算术运算隐式转换为数值型 consloe.log( '12'-0);
- 转换为布尔型
递增和递减运算符:
递增(++)、递减(--)放在变量前面时,我们可以称为前置递增(递减)运算符,放在变量后面时,我们可以称为后置递增(递减)运算符。
- 后置自增:先表达式返回原值,后自加1*
var age=10;
console.log(age++ + 10); //得到结果为20,a++为10
console.log(age); //结果为11
逻辑运算符:
&&(与) ||(或) !(非)
- 逻辑与短路运算:如果表达式1结果为真,则返回表达式2,如果表达式1为假,则返回表达式1(假的:0 ‘’null undefined NaN)
- 逻辑或短路运算:如果表达式1结果为真,则返回表达式1,如果表达式1为假,则返回表达式2
var num = 0;
console.log(123 || num++); //结果为123,num++表达式未进行运算
console.log(num); //结果为0
三元运算符(条件运算符):就像写成一行的if-else表达式
语法是:a?b:c,其中a是条件, b是条件返回 true时要运行的代码, c 是条件返回 false时要运行的代码
例:用户输入一个数字,数字小于10则在这个数字前面补0,否则不做操作
var time = prompt('请输入一个数字');
var result = time <10? '0'+time : time;
alert(result);
switch分支语句
语法结构:
switch(表达式){
case value1:
执行语句1;
break;
case value2:
执行语句2;
break;
....
default:
执行最后的语句;
}
对象的分类
- 1.内建对象
- 由ES标椎中定义的对象,在任何的ES的实现中都可以使用 -比如,Math String Number Boolean Function Object....
- 2.宿主对象
- 由JS的运行环境提供的对象,目前来讲主要由浏览器提供的对象 -比如Bom Dom
- 3.自定义对象
- 由开发人员自己创建的对象 创建对象 var obj = new Object();
返回值类型
- break; //使用break可以退出当前循环
- continue; //用于跳过当次循环
- return; //可以结束整个函数
构造函数的执行流程:
- 1.立即创建一个新的对象
- 2.将新建的对象设置为函数中的this,在构造函数中可以使用this来引用新建的对象
- 3.逐执行函数中的代码
- 4.将新建的对象作为返回值返回 使用同一个函数创建的对象,我们称为一类对象,也将一个构造函数称为一个类, 我们将通过一个函数创建的对象,称为该类的实例
原型prototype
我们所创建的每一个函数,解析器都会向函数中添加一个属性prototype
这个属性对应着一个对象,这个对象就是我们所谓的原型对象,如果函数作为普通函数调用prototype没有任何作用
当函数以构造函数形式调用时,他所创建的对象中都会有一个隐含的属性,指向该构造函数的原型对象,我们可以通过__proto__来访问该属性;当我们访问对象的一个属性或方法时,它会先在对象自身中寻找,如果有则直接使用, 如果没有则去原型对象中寻找,找到则直接使用
function myclass(){}
var mc = new myclass();
var mc2 = new myclass(); //console.log(myclass.prototype);
console.log(mc.__proto__==myclass.prototype);