JS基础学习日志之对象字面量、函数简介

目标:2019年结束前可以自己上手写出一个完整项目.
计划:目前先学完《尚硅谷JavaScript》140P,抽空多看HTML&CSS,之后再计划别的.
习惯:每天至少可以学1P.

2019-10-27

《尚硅谷JavaScript》学习笔记
P50(JS基础_对象字面量) 、 P51(函数的简介)、 P52(函数的参数)、 P53(函数的返回值)

一、创建对象的方式:
1、使用构造函数【new】来创建对象。
var obj = new Object();
2、使用【对象字面量】来创建对象,对象字面量创建对象时,可以指定对象中的属性。
var obj = { };
console.log(obj); 输入{ }
console.log(typeof obj); type为object型
-语法:var object{ pro1:"xxxx",pro2:"xxxx",pro3:"xxxx",.........};
'''var obj2 = {
name:"Hzzzzzzz",
age:11111,
gender:"不明",
band:"mayday"
};
'''
使用对象字面量时,普通常见的propertyName不用加“”引号,因为属性名本身就是一个字符串,特殊符号如(!@#¥¥%%...)之类的必须加引号。
-属性名与属性值:
属性名与属性值一组一组的名值对结构,名和值之间使用【:】连接,名值之间使用【,】隔开,最后一个属性名值后不用加【,】。

二、函数的简介:函数是一个对象。
2-1、函数功能:
-函数中可以封装一些功能(代码),在需要的时候可以拿出来执行。
-函数中可以保存一些代码,在需要的时候拿出来调用。
-函数也可以正常使用普通对象的功能,比普通对象强大。
fun.namee="Hzzzzz"; 疑问:这里属性名设置为“name”时,返回的是“anonymous”
console.log(fun.namee);

2-2、创建函数对象
-使用构造函数【new】创建函数对象(日常基本不用这种):
语法:
var fun = new Funtion();
console.log(fun); 函数结构:function anonymous() { }
console.log(typeof fun); 使用typeof检查函数对象时,返回的类型为function。

-使用【函数声明】创建函数:声明函数不用【;】
语法:
function 函数名([形参1,形参2,形参3,....]){
语句(函数体).....;
}
-使用【函数表达式】创建函数:为赋值语句,需要【;】
语法:创建一个匿名函数,将该函数赋值给一个变量,调用时使用变量名()调用。
var 变量 = function( [形参1,形参2,形参3,....] ){
语句(函数体).....;
};
函数名();

2-3、往函数里封装代码:
-可以将要封装的代码以字符串形式传递给构造函数。
var fun = new Function("console.log('hello,function!');"); 【" "】中为要封装的代码,
-使用【函数声明】创建的函数,将要封装的代码写进函数体即可,无需【" "】。
function fun(){
console.log("hello,function again!"); //写在函数体里的语句不用再使用【" "】.
};
console.log(fun);
-封装的代码不会立即执行,封装函数里的代码只有在调用该函数时,才会执行。
-函数也是一个对象,只是添加的值为一段可执行的代码。

2-4、调用函数:
-语法:函数对象();即fun();
-调用函数后,函数中封装的代码会按照顺序依次执行。
a. 构造函数:var fun = new Function("console.log('hello,function!');");
fun();
b.函数声明: function fun(){
console.log("hello,function again!");
alert("123456789");
document.write("wwwwwwwwwwwwwwwwwwwwwww");
};
fun();
-封装的代码调用几次执行几次。

三、函数的参数:
例题:定义一个求两个数和的函数
3-1、形参
-形参:在函数名后的()中,指定一个或多个形参(形式参数,占个位不赋值),多个形参之间使用【,】隔开;
-在()中声明形参就相当于在函数内部声明了对应的变量,但并不赋值;= var a / b ;
function sum(a,b){
console.log(a+b);
}
sum();
a+b为算数运算,运算之前:
先将 非number型的值会先转化为number型;
a、b两个变量已声明但未赋值,则为undefined型;
undefined型转化为number型结果为NaN;
任何值与NaN进行运算时,返回结果都为NaN。
3-2、实参
-实参:调用函数时,在函数名后的()中,指定实参(实际参数),实参会赋值给函数中对应的形参。实参可以为任意类型。
function sum(a,b){
console.log(a+b);
}
sum(1,2);
sum(123,456);函数调用几次执行几次。
***调用函数时,解析器不会检查实参的类型,需多注意接收到的实参是否为非法参数。
***调用函数时,解析器也不会检查实参的数量是否与形参对应,
当实参多于形参时,实参从左到右依次向形参赋值,多余的实参不会被赋值进形参中。
function sum(a,b){
console.log(a+b);
}
sum(1,2);
sum(123,456,"hello",null,true);返回值依旧为579.
当实参少于形参时,则意味着有个变量已声明但未赋值,该变量就为undefined型,算数运算之前,非number型的值会先转化为number型,而undefined型转化为number型结果为NaN,当任何值与NaN进行运算时,返回结果都为NaN。
function sum(a,b){
console.log(a+b);
}
sum(1); 返回值为NaN.

四、函数的返回值:
例题:创建一个可以计算三个数和的函数
4-1、return语句:使用return设置函数的返回值,return的值会作为函数执行的结果返回。return可以返回任意类型的值。
return以下的语句不会再执行,类似break;
return语句后面没有跟任何值,则相当于return undefined,返回的结果为undefined;
函数体中未设置return,返回的结果也会undefined。
语法:return 值/变量
function sum(a,b,c){
var d = a + b + c;
return d;
}
sum(1,2,3);
return以下的语句不会再执行;
return语句后面没有跟任何值,则相当于return undefined,返回的结果为undefined;
函数体中未设置return,返回的结果也会undefined。

4-2、接收return的返回结果:在函数外设置变量result
设置renturn后,需要再调用的时候再设置一个变量result,用来接收return返回的结果,即result的值就为函数执行的结果,函数执行返回什么,result值就是什么。
当函数体中为alert();函数时,该函数未定义形参,只是可以弹窗,不会有返回值,所以return返回给result的为undefined。

——————————————2019-10-27-20:20—————————————

你可能感兴趣的:(JS基础学习日志之对象字面量、函数简介)