由于个人对html、css代码较为熟悉,且为了加快学习进度,因此跨过了前4周的学习,直接从半懵懂的JavaScript开始。
所以学习笔记有跳过,还请包涵~
通过3天的学习,个人觉得这个课程的含金量还是很高的,弥补了好多基础知识点。
不~吹牛逼的说,这是我近2年以来最认真去学习的一个课程了。

比如:
水仙花数、约数、质数这些曾经学过的数学知识都已经忘记了~哈哈,估计数学老师知道了又得拿尺子打我了。

数学知识弥补
水仙花数:指一个n位数,它的每个位上的数字的n次幂之和等于它本身(例:三位数153 = 1^3 + 5^3+ 3^3 )
约数:整数A除以整数B(B≠0),商正好是整数而没有余数,B称为A的约数。
质数:只能被1和它本身整除的数字,最小的质数是2。
阶乘公式:n!=1×2×3×…×(n-1)×n
喇叭花数公式:abc = a!+b!+c!

01 JS语法与变量

认识输出语句

image

alert 弹出警告框

alert(\'aaa\');
alert(\'bbb\');
alert(\'ccc\');

会打断程序运行,从第一条依次弹出

console.log 控制台输出

console.log(\'111\');
console.log(\'222\');
console.log(\'333\');

不会打断程序运行,有多少条显示多少条

document.write() 写入 HTML 输出

document.write(\'aaa\')

会重写当前html内容

innerHTML 写入 HTML 元素

document.getElementById("demo").innerHTML = 5 + 6;

变量:变量是存储数据值的容器。

image

字符串,用引号扩起来的就是字符串,可以是汉字、字母+汉字、字母+汉字+数字,甚至运算符

var b = \'字符串\', b1 = \'aaa\', b2 = \'111\', b3 = \'111字符串\', b4 = \'111+aaa+字符串\';

输出字符串变量

console.log(b);
console.log(b1);
console.log(b2);
console.log(b3);
console.log(b4);

附加知识点

如果变量命名一致,将只输出相同变量命最后一个的赋值;
变量命名只能是一个词,由字母、数字、下划线、$组成,但不能以数字开头;不能使用js函数名或关键词,例如alert;大小写是不同的变量命名,a和A不相同;

输出自定义字符串,而不是变量a

console.log(\'a\');

输出变量+字符串

console.log(a + \'a\');

输出运算结果

console.log(a + a1)

常见命名错误

var error1 = 2m;
以数字开头错误

var error2 = a#3;
使用非下划线的符号错误

image

优秀的命名方法

下划线:

first_name, last_name, master_card, inter_city.

驼峰式大小写:

FirstName, LastName, MasterCard, InterCity.

image

02 数据类型与转换

image

数据类型 – 简单类型

五种可包含值的数据类型:

  • 数字(number)
    例如:1、2.5、1000、-1、2e3

  • 字符串(string)
    例如:\’aaa\’、\’111\’、\’字符串\’、\’aaa字符串\’、\’1111+字符串\’

  • 布尔(boolean)
    例如:true、false

  • 对象(object)

  • 函数(function)

有三种对象类型:

  • 对象(Object)

  • 日期(Date)

  • 数组(Array)

同时有两种不能包含值的数据类型:

  • undefined
    例如:声明变量后没有赋值、或者没有此变量,会出现undefined

  • null
    表示是“空”对象,当需要将对象、数组销毁或删除事件监听时,通常会将他们设置为null

数据类型检测 typeof

var a = 111, b = \'字符串\', c = true, d;

console.log(typeof a);
console.log(typeof b);
console.log(typeof c);
console.log(typeof d);

注意点:

  • NaN 的数据类型是数值
  • 数组的数据类型是对象
  • 日期的数据类型是对象
  • null 的数据类型是对象
  • 未定义变量的数据类型是 undefined
  • 尚未赋值的变量的数据类型也是 undefined
    无法使用 typeof 去判断 JavaScript 对象是否是数组(或日期)。

image

数据类型转换

其他值→数字

Number(\’\’)

将字符串、布尔值、undefined、null转换为数字类型

var n = Number(\'123\');
console.log(n);
console.log(typeof n);

例:

Number(\'123\');  // 123
Number(\'123.4\');  //123.4
Number(\'2021年\');  // NaN
Number(\'2e3\');  // 2000
Number(\'\');  // 0

Number(\'true\');  // 1
Number(\'false\');  // 0

Number(\'undefined\');  // NaN
Number(\'null\');  // 0

parseInt(\’\’);

截取非数字字符的第一个数字,并将其转化成整数(不四舍五入)。

var pi = parseInt(\'3.14\');
console.log(pi);
console.log(typeof pi);

例子:

parseInt(\'3.14\');  // 3 只获取3
parseInt(\'3.99\');  // 3 只获取3,并且不四舍五入
parseInt(\'3.14圆周率\');  // 3 所有文字、小数都被截掉
parseInt(\'圆周率3.14\');  // NaN 如果字符串不是以数字开头,则转为NaN

parseFloat(\’\’);

截取所有数字字符

var pf = parseFloat(\'3.14\');
console.log(pf);
console.log(typeof pf);

例子:

parseFloat(\'3.14\');  // 3.14
parseFloat(\'3.99\');  // 3.99
parseFloat(\'3.14圆周率\');  // 3.14 所有文字都被截掉
parseFloat(\'圆周率3.14\');  // NaN 如果字符串不是以数字开头,则转为NaN

其他值→字符串

String();

把任意类型的数字、文字、变量或表达式转换为字符串

var s = String(123);
console.log(s)
console.log(typeof s)

例:

String(123);  // \'123\'
String(123.4);  // \'123.4\'
String(2e3);  // \'2000\'
String(NaN);  // \'NaN\'
String();  // \'\'

String(true);  // \'true\'
String(false);  // \'false\'

String(undefined);  // \'undefined\'
String(null);  // \'null\'

toString()

几乎所有值都有toString()方法,只是和String()用法不同,且无法转换null和undefined。

var a =1;
var b = 123;
String(a);  // \'1\'
typeOf(a);  // String
typeOf(b);  // Number
b.toString();  // \'123\'
typeOf(b);  //String;

其他值→布尔值

Boolean();

将其他值转化成true、flase类布尔值

var bl = Boolean(123);
console.log(bl)
console.log(typeof bl)

例子:

Boolean(123);  // true 0和NaN转为false,其他数值都转为true
Boolean(0);  // false
Boolean(NaN);  // false
Boolean(Infinity);  // true
Boolean(-1);  // true

Boolean(\'\');  // false 空字符串转为false,其他字符串转为true
Boolean(\'abc\');  // true
Boolean(\'false\');  // true

Boolean(undefined);  // false
Boolean(null);  // false

更多关于数据类型转换的文章:

https://www.w3school.com.cn/js/js_type_conversion.asp

JavaScript 类型转换表

image

数据类型 – 复杂类型

复杂类型包含:数组、对象、函数

数组举例

[1,2,3]

对象举例

{ a : 1, b : 2}

函数举例

function (){
  
}

03 表达式与操作符

表达式的种类:算数表达式、关系表达式、逻辑表达式、赋值表达式、综合表达式

算术表达式:

+  // 加
-  // 减
*  // 乘
/  // 除
%  // 取余

注意点:
运算顺序和数学一致:先运算括号内的 → 乘除 → 加减
+号有“加法”、“连字符”两个用途,若加号两边操作的都是数字则为加法运算,否则为连字符

关系表达式:

>    // 大于
<    // 小于
=    // 等于
>=   // 大于等于
<=   // 小于等于
==   // 等于
!=   // 不等于
=== // 全等于
!== // 不全等于

例子:

/* 相等和全等 */
5 == \'5\';  // true
5 === \'5\'  // false

1 == true;  // true
1 === true;  // flase

/* 特殊值的相等关系 */
null == undefined;  // true
null == 0;  // false
NaN == NaN  // false

逻辑表达式:

!  // 非,表示不,也可称为置反运算,置反的运算结果一定是布尔值
&&  // 且,表示并且,也可称为与运算,口诀:都真才真
||  // 或,表示或者,也可称为或运算,口诀:有真就真

!非使用例子&示意:

!true  // false
!false  // true
!0  // true
!!true  // true

&&且使用例子&示意:

true && true  // true
true && false  // false
false && true  // false
false && false  // false

||或使用例子&示意:

true || true  // true
true || false  // true
false || true  // true
false || false  // false

逻辑运算的优先级顺序:\’!\’非 → \’&&\’且 → \’||\’或

赋值表达式:

=  // 赋值

/* 自增自减运算 */
++  // 自增 在原来的基础上+1
--  // 自减 在原来的基础上-1

/* 快捷赋值:在原基础上进一步进行运算 */
+=  // a += 5;  等同于 a = a + 5;
-=  // a -= 5;  等同于 a = a - 5;
*=  // a *= 5;  等同于 a = a * 5;
/=  // a /= 5;  等同于 a = a / 5;
%=  // a %= 5;  等同于 a = a % 5;

自增自减运算例子:

var a = 3;
a++;  // 等同于 a = a + 1;
console.log(a);  // 4

a++ :存储新值,用旧值(上一个值)来计算,也就是输出旧值;
++a :存储新值,用新值(当前的值)来计算,也就是输出新值;
详细解答:https://blog.csdn.net/Lazy_Life/article/details/81214249

快捷赋值例子:

var a = 3;
a += 5;  // 等同于 a = a + 5;
console.log(a);  // 8

综合表达式:

运算顺序:非运算 → 数学运算 → 关系运算 → 逻辑运算

未完哟~还有很多笔记在下方目录里,有需要的童鞋请移步下方链接。

更多关于慕课网web前端工程师2021的详细学习路径&笔记目录:

第5周 JS基础语法与表达式

https://www.cnblogs.com/inzens/p/javascript.html

第6周 JS流程控制语句

https://www.cnblogs.com/inzens/p/15110463.html

第6周 数组

https://www.cnblogs.com/inzens/p/15111648.html

课外学习资料:

https://www.w3school.com.cn/js/index.asp

本文会不断更新,一直到web前端工程师全部课程学习完毕。
感谢慕课网,感谢授课老师!

版权声明:本文为inzens原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/inzens/p/15085066.html