C1认证学习笔记(第三章)

2023-11-20

C1认证(三)——JS基础:

JavaScript变量命名规则:

任务目标:

理解并掌握JavaScript中变量的命名规则

任务背景:

某位大牛曾说:计算机科学领域有两个难题:一个是缓存失效,另一个就是命名。这里说到的命名不仅是要符合语法层面的规则,还要符合工程层面的规范。如果变量的命名不符合语法层面的规则,那么程序就会报错;如果变量的命名不符合工程规范,将会影响项目的开发与后续的维护。

语法层面:
  • 变量名不能以数字或者某些特殊字符开头
  • 变量名不能是关键字
工程层面:
  • 一般应当坚持使用拉丁字符(0-9,a-z,A-Z)和下划线字符。

  • 不应当使用规则之外的其他字符,因为它们可能引发错误,或对国际用户来说难以理解。

  • 变量名不要以下划线开头—— 以下划线开头的被某些JavaScript设计为特殊的含义,因此可能让人迷惑。

  • 变量名不要以数字开头。这种行为是不被允许的,并且将引发一个错误。

  • 一个可靠的命名约定叫做 “小写驼峰命名法”,用来将多个单词组在一起,小写整个命名的第一个字母然后大写剩下单词的首字符。

  • 让变量名直观,它们描述了所包含的数据。不要只使用单一的字母/数字,或者长句。

  • 变量名大小写敏感

  • 最后也是最重要的一点—— 你应当避免使用JavaScript的保留字给变量命名。保留字,即是组成JavaScript的实际语法的单词!因此诸如 var, function, let和 for等,都不能被作为变量名使用。浏览器将把它们识别为不同的代码项,因此你将得到错误。

任务练习:

①:在JavaScript中以下,以下哪些变量名是非法的(会导致程序报错)?
在这里插入图片描述
②:在JavaScript中,以下哪些变量名不建议使用?
在这里插入图片描述
③:在JavaScript中,以下字符串中那些不能被作为变量名使用?(使用了,程序就会报错)
在这里插入图片描述
④:在JavaScript中,以下代码运行会报错
在这里插入图片描述
⑤:在JavaScript中,从代码易于维护的角度来看,以下哪些变量名比较合适?
在这里插入图片描述

逻辑运算:

任务目标:

理解与灵活运用JavaScript的比较运算符
理解与灵活使用JavaScript的逻辑运算符

任务背景:

JavaScript比较运算符在逻辑语句中使用,以判定变量或值是否相等,返回true 或 false;逻辑运算符用于判定变量或值之间的逻辑。

比较运算符:

我们假定 num = 5,下表中解释了比较运算符:
在这里插入图片描述

逻辑运算符:

我们假定num = 5,下表中解释了逻辑运算符:

在这里插入图片描述

知识拓展:

比较运算和逻辑运算大概率情况下都会配合【条件分支】(if 、三元运算、switch等)结合使用

任务练习:

①:要想以下JavaScript代码符合预期,空格处应该填什么运算符?

var a = 11
var b = 6
if(__(a<b)) {
    console.log(a)
} else {
    console.log(b)
}
预期输出结果:
11

思路:根据代码我们得知,判断分支必须走console.log(a)处,符合结果,但是a肯定是大于b的,条件a<b 结果为false,空格处填写什么能让false转为true呢,逻辑运算符中"非"符合条件

②:以下JavaScript代码运行的预期输出结果是?

var num = 55
var str = "55"
if(num === str) {
    console.log("Yes")
} else {
    console.log("No")
}
预期输出结果:
____

No

③:以下JavaScript代码运行的预期输出结果是?

var res1 = 5 > 8
var res2 = true
if(res1 && res2) {
    console.log("Yes")
} else {
    console.log("No")
}
预期输出结果:
____

思路:变量res1是表达式5 > 8的结果,即为false。变量res2为true。然后对res1和res2进行与操作,因为res1为false,所以res1 && res2的结果也为false。与运算,当其中任何一个操作数为false时,该运算的结果为false,只有当两个操作数都为true时,其运算结果才为true

NO

④:以下JavaScript代码运行的预期输出结果是?

var res1 = 6 > 3
var res2 = 8 >= 8
var res3 = false
if(res1 || res2 && res3) {
    console.log("Yes")
} else {
    console.log("No")
}
预期输出结果:
____

思路:这里涉及到运算和运算的优先级。的优先级比的高。所以res1 || res2 && res3的运算循顺序是先计算res2 && res3,然后再将其结果(false)和res1做或运算。

YES

⑤:以下JavaScript代码运行的预期输出结果是?

var num = 8
if(true || (num = 9)) {
    console.log(num)
}

预期输出结果:
____

思路:这里涉及到逻辑运算的短路机制,对于运算,当第一个操作数是true时,该运算的结果是true,第二个操作数不会被求值(如果是表达式的话就不会被执行)

8

隐式类型转换:

任务目标:

理解并掌握常见场景中隐式类型转换的规律

任务背景:

每一个变量或者值都有其对应的类型,在JavaScript中如Number、String、Boolean、Array、Object等。在强类型的语言中,不同类型的变量或值之间不能进行运算;在弱类型的语言中,不同类型的变量或值可进行一些运算,这主要是因为解释器做了隐式类型转换的工作。

任务内容:
字符串和数字的运算:

字符串和数字进行加运算时,会将数字转换成字符串,然后和另一个字符串进行拼接

var num1 = '123' 
var num2 = 12 
var num3 = num1 + num2 
console.log(num3) // 预期输出:'12312'

字符串和数字进行减、乘、除运算,以及大小比较时,会将字符串转换成数字,再和另一个数字进行运算或比较

var num1 = '123' 
var num2 = 12 
var num3 = num1 - num2 
console.log(num3) // 预期输出:111 
var num1 = '123' 
var num2 = 12 
var num3 = num1 * num2 
console.log(num3) // 预期输出:1476 
var num1 = '123' 
var num2 = 12 
var num3 = num1 / num2 
console.log(num3) // 预期输出:10.25 
var num1 = '123' 
var num2 = 15 
var t = num1 > num2 
console.log(t) // 预期输出:true 
各种值转换成布尔值:
  • 数字0,空字符串"",null,undefined 转成布尔值的时候都是false
  • 非0数字,非空字符串转成布尔值的时候都是true
  • 任何数组(即使是空数组),任何对象(即使是空对象) 转成布尔值的时候都是true
var a = 0 
if (a) { 
    console.log('hello') 
} else { 
    console.log('world') 
} 
// 当a=0或""或null或undefined的时候,预期输出:world 
// 当a=[]或空对象的时候,预期输出:hello 
// 当a=-1或"abc"时候,预期输出:hello
任务练习:

①:以下代码的预期输出是?

var arr = [] 
var str 
if (arr) { 
    str = 'hello' 
} 
console.log(str) 

预期输出: 
____

hello

②:要想是一下JavaScript代码运行符合预期,空格处应该填什么运算符?

var a = true 
var b = 2 
var c = a ___ b 
console.log(c) 

预期输出: 
2

思路:
b为2,12会得到2,或者0+2会得到2
空格处应该填
,true会被隐式转换成1参入运算

*

③:以下JavaScript代码运行的预期输出结果是?

var res = 567 + '1' - 89
console.log(res) 

预期输出: 
____
567 + '1' - 89 =567+1- 89 =5671- 89 = 5671 - 89 = 5582

5582

④:以下JavaScript代码运行的预期输出结果是?

if (null) {
    console.log('Hello')
} else {
    console.log('World')
}

预期输出: 
____   

思路:null是JS里面一个特殊的值,表示什么都没有,在这里会被转成布尔值。转成布尔类型的话,则为false

World

⑤:以下JavaScript代码运行的预期输出结果是?

var a = {}
if (a) {
    console.log('Hello')
} else {
    console.log('World')
}

预期输出: 
____

思路:{}表示一个空的对象,在这里会被转成布尔值。在JS中,空对象转成布尔类型的话,其值为true

Hello

条件分支:

任务目标:

理解并掌握if分支
理解并掌握switch分支

任务背景:

条件分支是编程语言必备的流程控制之一。它能根据所给定值或表达式的真假来运行不同区块的代码。日常编码中,不可避免的要使用到它。

任务内容:
if分支:

基本语法结构:

if (条件1) { 
    // 代码块1 
} else if (条件2) { 
    // 代码块2 
} else { 
    // 代码块3 
}

说明:

  • 如果条件1为真就会执行代码块1。即使条件2为真也不会去执行代码块2,更不会执行代码块3
  • 只有当条件1为假,并且条件2为真的时候,才会执行代码块2
  • 如果条件1和条件2都为假,才会执行代码块3
  • else if 和 else 部分不是必需的。
  • 可以有多个else if

示例:

var x = 20 
if (x > 5) { 
    console.log('a') 
} else if (x > 50) { 
    console.log('b') 
} else { 
    console.log('c') 
} 
// 如果x=20,上述代码预期输出:'a' 
// 如果x=100,上述代码预期输出也是:'a' 
switch分支:

基本语法结果:

switch (expression) { 
    case value1: 
        // 当 expression 的结果与 value1 匹配时,执行此处语句 	
        [break;] 
    case value2: 
        // 当 expression 的结果与 value2 匹配时,执行此处语句 	
        [break;] 
    ... 
    case valueN: 
        // 当 expression 的结果与 valueN 匹配时,执行此处语句 	
        [break;] 
    [default: 
        // 如果 expression 与上面的 value 值都不匹配,执行此处语句 
        [break;]] 
}

说明:

  • []表示这一部分语句是可选的,并不是说正常代码中要加[]
  • expression和value的是进行严格模式的匹配
  • 如果所有case都没有匹配到,将执行default分支的代码

示例:

var expr = '樱桃' 
switch (expr) { 
    case '樱桃': 
        // 代码块1
        console.log('樱桃每斤7元'); 
        break; 
    case '芒果': 
    case '木瓜': 
        // 代码块2
        console.log('芒果 和 木瓜 每斤10元'); 
        break; 
    default: 
        // 代码块3
        console.log('对不起,我们没有 ' + expr + '.'); 
} 
// 如果expr值为'樱桃',则预期输出:'樱桃每斤7元' 
// 当expr的值为'樱桃'时就会执行代码块1,且代码块1中有break,所有不会执行其他代码块 
// 注意:如果expr匹配到某一个case,且这个case里面代码没有break,那么执行完这个代码块后,紧接着就会执行下一个case的代码,不管expr有没有匹配到下一个case的值 
// 所以当expr的值为'芒果'的时候,代码块2也将被执行
任务练习:

①:以下JavaScript代码的预期输出是?

var a = 8 
if (a > 7) { 
    a = 3 
} 
if (a > 4) { 
    a = 5 
} 
console.log(a)

思路: 只要满足一个条件就不会执行第二条

3

②:要想以下JavaScript代码符合预期,空格处应该填什么(表达式除外)?

var expr = ____ 
switch (expr) { 
    case 1: 
        // 代码块1 
        console.log(111); 
    case 2: 
        // 代码块2 
        console.log(222); 
    case 3: 
        // 代码块3 
        console.log(333); 
        break;  
    case 5: 
        // 代码块5 
        console.log(111); 
    case 6: 
        // 代码块6 
        console.log(222); 
        break; 
    default: 
        // 代码块7 
        console.log(111); 
}
预期输出: 
111
222

思路:只有当expr为5时,会执行代码块5、代码块6,从而打印111, 222 符合预期输出

5

③:以下JavaScript代码运行的预期输出结果是?

var num = 89
if (num < 89) {
    console.log('a')
} else if (num > 89) {
    console.log('b')
} else {
    console.log('c')
}
预期输出: 
____

c

④:以下JavaScript代码运行的预期输出结果是?

if (8 > 7) {
    console.log('Hello')
} else {
    console.log('World')
}
预期输出: 
____

思路:8 > 7为true,所以会执行console.log('Hello')

⑤:以下JavaScript代码运行的预期输出结果是?

if (78 < 67) {
    if (45 > 23) {
        console.log('a')
    } else {
        console.log('b')
    }
} else {
    if (89 > 45) {
        console.log('c')
    } else {
        console.log('d')
    }
}
预期输出: 
____

c

For循环:

任务目标:

理解JavaScript的for循环代码结构
理解JavaScript的for循环对数字、数组、对象的操作
掌握JavaScript的for循环的迭代器递增、递减的操作

任务背景:

当我们在编写代码的时候,假如您需要运行代码多次,且每次使用不同的值,那么循环相当方便使用。

for循环的使用方法:
  • for:多次遍历代码块
  • for/in:遍历对象属性
使用示例:
for (语句 1; 语句 2; 语句 3) {
    要执行的代码块
}

2.1 for循环是您希望创建循环时经常使用的语法结构,代码结构如下:

  • 语句 1 在循环(代码块)开始之前执行。

  • 语句 2 定义运行循环(代码块)的条件。

  • 语句 3 会在循环(代码块)每次被执行后执行。

2.2 for循环代码实例一(普通遍历):

for (var i = 0; i < 10; i++) {
    console.log(i)
}
// 执行结果
0 1 2 3 4 5 6 7 8 9

for (var i = 0; i < 10; i+=2) {
    console.log(i)
}
// 执行结果
0 2 4 6 8

说明:

  • 语句1在循环之前设置一个变量(var i = 0),从0开始遍历

  • 语句2定义运行循环的条件(i必须小于10),当i = 10的时候不满足循环条件

  • 语句3会在代码块每次执行之后对变量值i进行递增(i++)

  • 语句3 (i+=2) 相当于每次循环迭代器i+2,也可以这么写(i=i+2)

2.3 for循环代码实例二(数组遍历):

var arr = [11, 22, 33, 44, 55]
for (var i = 0; i < arr.length; i++) {
    console.log(arr[i])
}
// 执行结果
11 22 33 44 55

说明:

  • 语句1在循环之前设置一个变量(var i = 0),从0开始遍历(数组下标从0开始)

  • 语句2定义运行循环的条件(i必须小于arr的数组长度),当arr下标正好是0-3,4的时候不满足循环要求

  • 语句3会在代码块每次执行之后对变量值i进行递增(i++)从arr[0]-arr[3]

2.4 for循环代码实例三(对象遍历):

var obj = {name:"tom", gender:"man", age:32} 
for (var key in obj) {
    // 打印键
    console.log(key)
    // 打印值
    console.log(obj[key])
}
// 执行结果
name
tom
gender
man
age
32

说明:

JavaScript提供了一种特殊的循环(也就是for …
in循环),用来迭代对象的属性或数组的每个元素,for…in循环中的循环计数器是字符串,而不是数字。它包含当前属性的名称或当前数组元素的索引

想要以下代码运行符合预期则空格处应该填什么整型数字?

for (var i=0; i <= ___; i++) {
    console.log(i)
}
预期输出结果: 0 1 2 3 4 5 

5

②:想要以下代码运行符合预期则空格处应该填什么整型数字?

for (var i=1; i <= ___; i+=1) {
    console.log(i)
} 
预期输出结果:1 2 3 4 5 6 7 8 9

9

③:想要以下代码运行符合预期则空格处应该填什么整型数字?

var arr = ['a1', 'b1', 'c1', 'd1', 'e1', 'f1', 'g1', 'h1']
for (var i=0; i < arr.length; i+=___) {
    console.log(arr[i])
}
预期结果:a1 d1 g1

3

④:想要以下代码运行符合预期则空格处应该填?

var obj = {
    realName:'张三', 
    phone:13344556789, 
    email:'zhangsan@163.com',
    created_at:'2021-06-12 10:00:00'
}
for (var k in obj) {
    if(k === _______ ){
        console.log(obj[k])
    }
}
预期结果:zhangsan@163.com

'email'

⑤:想要以下代码运行符合预期则空格处应该填什么整数?

for (var i=4; i<9; i+=___) {
    console.log(i)
}
预期输出: 
4
7

思路:第一次循环打印了4,第二次循环打印了7,由此我们可以知道i在每一次循环后的自增值

3

Math内置对象:

任务目标:

理解与灵活运用JavaScript的Math对象的常用方法

任务背景:

Math对象的作用是:执行常见的算数任务。保存数学公式和信息,与我们在JavaScript直接编写计算功能相比,Math对象提供的计算功能执行起来要快得多。

Math对象的常用方法:

在这里插入图片描述
实例:

// 要想以下JavaScript代码符合预期,空格处应该填什么?
var a = Math._____(-120.38)
console.log(a)
预期输出结果:
-121
  • 给出的数值-120.38 ,预期结果-121,说明是向下取整
  • Math.floor() 正是向下取整

组合实例:

// 获取一个10-50的随机整数
var num = Math.floor(Math.random()*40)+10
Math.random()*40 //获取40以内的随机数(当前还是浮点数)

【思路】:

  • Math.random()*40;为获取一个40以内的随机数(浮点数)

  • Math.floor(Math.random()*40);将这个浮点数舍1取整

  • 在最后加10则不管随机数是最小数还是最大数,都满足要求10-50

任务练习:

①:表达式 Math.____(13.6589)计算结果为13,则空格处应该填?

floor

②:要想以下JavaScript代码符合预期,空格处应该填什么(表达式除外)?(使用中文逗号「,」隔开)

var a = -14.4
var b = 10
var c = Math.____ (a*b)
var d = Math.____ (c)
console.log(d)
预期输出结果:
12

思路:首先a*b的默认结果为-144(已是整数,取整方法不适用),已知的Math方法里取绝对值可以将-144转为144;144的平方根正好符合答案,故使用平方根方法

abs,sqrt

③:要想以下JavaScript代码符合预期,空格处应该填什么整数?

console.log(Math.sqrt(____))
预期输出结果:
9

81

④:要想以下JavaScript代码符合预期,空格处应该填什么(表达式除外)?

console.log(Math.____(3, 4, 89))
预期输出结果:
89

max

⑤:要想以下JavaScript代码符合预期,空格处应该填什么(表达式除外)?

console.log(Math.____(8.01))
预期输出结果:
9 

ceil

对象属性:

任务目标:

理解并掌握JavaScript中如何查询对象的属性
理解并掌握JavaScript中如何添加对象的属性
理解并掌握JavaScript中使用for-in遍历对象属性

任务背景:

对象属性指的是与JavaScript对象相关的值。JavaScript对象是无序属性的集合。属性通常可以被修改、添加和删除,但是某些属性是只读的。

任务内容:

1.对象定义(以下操作都基于这个对象)

// 定义一个对象
var obj = { name: "李明", age: 18, gender: "man", city: "山东", hobby: "游泳" }

2、访问对象属性的语法

// 访问对象属性方式一
obj.name
// 访问对象属性方式二
obj['name']
// 访问对象属性方式三
// 将对象属性赋值给一个变量,使用变量方式访问
var key = 'name'
obj[key]

3、添加对象的属性语法

// 添加一个属性方式一
obj.nickName = "小明"
// 添加一个属性方式二
obj["nickName"] = "小明"
console.log(obj)
// {name: '李明', age: 19, gender: 'man', city: '山东', hobby: '游泳', nickName: "小明"}

4、修改对象的属性语法

// 修改一个属性方式一
obj.age = 19
// 修改一个属性方式二
obj["age"] = 19
console.log(obj)
// { name: '李明', age: 19, gender: 'man', city: '山东', hobby: '游泳'}

5、删除对象的属性语法

// 删除一个属性
delete obj.age

console.log(obj)
// {name:'李明', gender: 'man', city: '山东', hobby: '游泳'}

6、for循环遍历对象属性的语法

// for循环遍历对象,需要使用for ... in
for (var key in obj) {
    console.log(key)
    console.log(obj[key])
}
任务练习:

①:要想以下JavaScript代码符合预期,空格处应该填什么(表达式除外)?

var obj = {name: 'lisi', city: '北京', age: 21}
console.log(obj._______)

// 预期输出结果:21

age

②:要想以下JavaScript代码符合预期,空格处应该填什么字符串?

var obj = {id: 1, title: 'React-JSX语法', lengtth: "120", created_at: "2021-07-01", created_staf: "张三"}
var adminName = '_______'
console.log(obj[adminName])
预期输出结果:
张三

created_staf

③:要想以下JavaScript代码符合预期,空格处应该填什么?

var obj = {
    name: '李四',
    school: '北京大学',
    age: 23
}
console.log(obj.____)
预期输出结果:
北京大学

school

④:要想以下JavaScript代码符合预期,空格处应该填什么整数?

var obj = {
    name: '王五',
    friends: ['张三', '李四'],
    age: 23
}

console.log(obj.friends[____])
预期输出结果:
李四

思路:obj这个对象的friends属性是一个数组,现在要打印这个数组的某一个索引上的值打印结果是李四,该索引就是李四这个值的索引

1

⑤:要想以下JavaScript代码符合预期,空格处应该填什么?

var obj = {
    name: '小明',
    friends: ['张三', '李四'],
    hobby: ['篮球', '足球', '游泳', '看书'],
    age: 23
}

console.log(obj.name + '喜欢' + obj.____[1])

预期输出结果:
小明喜欢足球

hobby

函数定义与调用:

任务目标:

理解并掌握JavaScript中函数的定义的两种方式:声明式,表达式式
理解并掌握JavaScript中函数的调用

任务背景:

我们可以把一系列的代码封装成一个函数,然后在任意位置去调用它,从而执行这一系列的代码。使用函数是一种简单直观的复用代码的方式。合理的定义和使用函数能使得我们的代码结构更加清晰、更便于阅读和维护。

通过声明来定义函数:

1.1 function关键字:

我们可以使用function关键字来定义一个具有名称的函数,其语法结构如下

function name([param[, param[, ... param]]]) 
{ 
    [statements] 
}

1.2 说明:

  • []表示可选,并不是正常代码中需要使用[]

  • name表示函数名,()中的表示参数,{}中的表示函数体。在函数被调用的时候,会执行函数体中的代码。

  • 注意:函数被定义的时候,函数体中的代码并不会被执行。只有到函数被调用的时候,函数体中的代码才会被执行。

  • 对于使用函数声明这个方法定义的函数,函数调用可以在函数定义之前,如示例中的pri函数。

1.3 示例:

pri(); // 预期输出:"foo" 
function pri() { 
    console.log("foo"); 
}
通过表达式来定义函数:

2.1 表达式定义法:

我们还可以使用函数表达式的方式来定义一个函数,这时可以将函数直接赋值给一个变量,其语法结构如下

var myFunction = function name([param[, param[, ... param]]]) { 
    statements 
}

2.2 说明:

  • []表示可选,并不是正常代码中需要使用[]

  • name表示函数名,可以省略,()中的表示参数,{}中的表示函数体。在函数被调用的时候,会执行函数体中的代码。

  • 注意:函数被定义的时候,函数体中的代码并不会被执行。只有到函数被调用的时候,函数体中的代码才会被执行。

  • 对于使用函数表达式这个方法定义的函数,函数调用必须在函数定义之后。

  • 如果省略name,我们称该函数为匿名函数。

2.3 示例:

var myFunction = function foo() { 
    // statements 
} 
myFunction() 
foo() // 会报错,并不能调用成功。命名函数表达式的好处是当我们遇到错误时,堆栈跟踪会显示函数名,容易寻找错误。
函数调用:
  • 对于使用函数声明的方法定义的函数,可以使用函数名加括号的方式来调用;对于使用函数表达式定义的函数,可以使用表达式所赋值的变量名加括号来调用。如上述代码所示。

  • 在函数被执行的时候,会运行函数体中的代码。如果函数体中有return语句,则会在函数被调用处返回return出来的值,并结束函数的运行。return并不是必需的,没有return的话,函数会返回undefined。

function add1(a, b) { 
   return a + b; 
} 
var res = add1(4, 5) 
console.log(res) // 预期输出:9 

function add2(a, b) { 
   a + b; 
} 
var res = add2(4, 5) 
console.log(res) // 预期输出:undefined 
函数在调用的时候,会将调用时给定的参数和定义时设定的参数依次绑定。如果调用时给定的参数个数不够,那么函数体中没有绑定的参数将被赋值为undefined

function foo(a, b) { 
    console.log(b) 
} 
foo(4) // 预期输出:undefined 
foo(4,8) // 预期输出:8
函数在调用时可以接受一个函数作为参数,也可以返回一个函数作为返回值。这是函数的高阶用法,暂不涉及,可自行查阅。
任务练习:

①:要想以下JavaScript代码符合预期,空格处应该填什么整型数字?

function foo(a, b) { 
    return a * b 
} 
console.log(foo(8, ___)) 
预期输出: 
32

4*8=32

4

②:要想以下JavaScript代码符合预期,空格处应该填什么整型数字?

function foo(a) { 
    return a * a * a 
} 
console.log(foo(___)) 
预期输出: 
27

3的立方是27

3

③:要想以下JavaScript代码符合预期,空格处应该填什么?

var obj = {
    name: '小明',
    friends: ['张三', '李四'],
    hobby: ['篮球', '足球', '游泳', '看书'],
    age: 23,
    getNewFriend: function (newFriend) {
        this.friends.push(newFriend)
    }
}

obj._______('王五')

console.log(obj.friends[2])

预期输出: 
王五

getNewFriend

④:以下的JavaScript代码的预期输出是?

var checkNum = function (num) {
    return num % 2 === 0
}
if (checkNum(8)) {
    console.log('Hello')
} else {
    console.log('World')
}

预期输出: 
____

思路:将一个函数表达式赋值给了checkNum变量,后面就可以使用checkNum来调用这个函数了;
除以2取余为0,简单来说,这个函数的作用是判断参数是否是一个偶数。

Hello

⑤:以下的JavaScript代码的预期输出是?

var checkNum = function (num, divisor) {
    return num % divisor === 0
}
if (checkNum(27, 5)) {
    console.log('Hello')
} else {
    console.log('World')
}

预期输出: 
____

27➗5不等于0 所以 返回 else

World

常见内置函数:

任务目标:

理解并掌握JavaScript中常见的内置函数

任务背景:

JavaScript是一个基于原型链的面向对象的语言,很多其他语言常见的函数会以对象上的各种方法存在,例如数组对象的各种方法,字符串对象的各种方法等。即便如此,JavaScript还是有一些顶层的内置函数,了解这些常见的内置函数对我们进行JavaScript编码有很大的帮助。

eval:

eval函数会将传入的字符串当做 JavaScript 代码进行执行。这是一个十分危险的函数,一般情况不建议使用。

var a = eval("2+2") 
console.log(a) 
// 预期输出:4 
// 这里eval把字符串"2+2",当成js代码执行,得到结果4 

eval("console.log('hello world')") 
// 预期输出:hello world 
// 这里eval把字符串"console.log('hello world')",当成js代码执行,打印输出:hello world
isNaN:

用来确定一个值是否为NaN。NaN表示不是一个数字。如果isNaN函数的参数不是Number类型, isNaN函数会首先尝试将这个参数转换为数值,然后才会对转换后的结果是否是NaN进行判断。因此,对于能被强制转换为有效的非NaN数值来说(空字符串和布尔值分别会被强制转换为数值0和1),返回false值也许会让人感觉莫名其妙。比如说,空字符串就明显“不是数值(nota number)”。这种怪异行为起源于:"不是数值(not anumber)"在基于IEEE-754数值的浮点计算体制中代表了一种特定的含义。isNaN函数其实等同于回答了这样一个问题:被测试的值在被强制转换成数值时会不会返回IEEE-754​中所谓的“不是数值(nota number)”。

isNaN('abc') // 返回值:true 因为字符串'abc'不是一个数字 
isNaN('12.23') // 返回值:false 因为字符串'12.23'是一个数字 

isNaN(NaN);       // true
isNaN(undefined); // true
isNaN({});        // true

isNaN(true);      // false
isNaN(null);      // false
isNaN(37);        // false

// strings
isNaN("37");      // false: 可以被转换成数值37
isNaN("37.37");   // false: 可以被转换成数值37.37
isNaN("37,5");    // true
isNaN('123ABC');  // true:  parseInt("123ABC")的结果是 123, 但是Number("123ABC")结果是 NaN
isNaN("");        // false: 空字符串被转换成0
isNaN(" ");       // false: 包含空格的字符串被转换成0

// dates
isNaN(new Date());                // false
isNaN(new Date().toString());     // true

isNaN("blabla")   // true: "blabla"不能转换成数值
                  // 转换成数值失败, 返回NaN
parseFloat:

根据给定的参数返回其对应的浮点数。

parseFloat(3.14); 
parseFloat('3.14'); 
parseFloat(' 3.14 '); 
parseFloat('314e-2'); 
parseFloat('0.0314E+2'); 
parseFloat('3.14some non-digit characters'); 
// 以上的返回值都是3.14
parseInt:

解析一个字符串并返回指定基数的十进制整数。

parseInt("0xF", 16); 
parseInt("F", 16); 
parseInt("17", 8); 
parseInt(021, 8); 
parseInt("015", 10); // parseInt(015, 8); 返回 13 parseInt(15.99, 10); 
parseInt("15,123", 10); 
parseInt("FXX123", 16); 
parseInt("1111", 2); 
parseInt("15 * 3", 10); 
parseInt("15e2", 10); 
parseInt("15px", 10); 
parseInt("12", 13); // 以上都返回15,第二个参数表示基数(可以理解为进制)
任务练习:

①:要想以下JavaScript代码运行符合预期,空格处应该填什么?

if (isNaN('.67') === ___) { 
    console.log('hello') 
} 

预期输出: 
hello 

false

②:要想以下JavaScript代码运行符合预期,空格处应该填什么整数?

console.log(parseInt("21", ____))
预期输出: 
17

思路:parseInt这个内置函数会把第一个参数按照第二个参数指定的基数(或者说是进制)转成一个十进制整数并返回;
现在第一个参数是"21",最终转成的10进制数是17,而八进制下的21就是10进制下的17。

8

③:以下的JavaScript代码的预期输出是?

console.log(parseFloat('8.9a89bd'))
预期输出:
____

8.9

④:以下的JavaScript代码的预期输出是?

if (isNaN('3e4') === false) {
    console.log('Hello')
} else {
    console.log('World')
}

预期输出: 
____

思路:isNaN内置函数是判断一个字符串是否不是一个数字

Hello

字符串定义与转义字符:

任务目标:

理解并掌握JavaScript中字符串的定义方法
理解并掌握JavaScript中常见的特殊字符的转义方法

任务背景:

在各种编程语言中,字符串一直都是十分基础与重要的数据类型。在JavaScript中有多种定义字符串的方式,每种方式适合不同的应用场景。字符串中除了包含一般常见的字符外,可能还需要包含一些特殊字符(例如回车、制表符等),这时就需要转义字符的协助了。掌握字符串的常见定义方法,熟悉常见的特殊字符的转义方式,会提升我们的编码能力。

任务内容:
使用引号来定义字符串:

我们可以使用一对单引号或者一对双引号来定义一个字符串

var str1 = "这是双引号定义的字符串" 
var str2 = '这是单引号定义的字符串' 
// 1. 在JavaScript中双引号定义的字符串和单引号定义的字符串没有本质区别 
// 2. 无论是单引号还是双引号,都必须配对使用,不能一个单引号和双引号配对 
// 3. 单引号中的字符串中不能出现单引号,可以出现双引号;双引号中的字符串中不能出现双引号,可以出现单引号

使用模板字符串的方式定义字符串:我们可以使用一对反引号来定义字符串

var str1 = `这是一个普通的字符串` 
var str2 = `这是一个换行的 
字符串` 
var a = 2 
var b = 3 
var str3 = `这是一个可以解析变量的字符串,例如:${a + b}` 
// 最终str3的值为: 
// 这是一个可以解析变量的字符串,例如:5
转义符:

在定义一个字符串的时候,有些特殊字符并不适合直接出现。例如:换行符、单引号(不能出现在单引号内)、双引号(不能出现在双引号内),这个时候可以我们需要使用\转义符,例如:

var str1 = '这是一个换行的\n字符串' 
console.log(str1) 
// 预期输出: 
// 这是一个换行的 
// 字符串 

// 在这里使用了\n来代表换行符。如果直接在定义字符串的时候回车换行,将出现语法错误 

var str2 = "如何使用双引号\"" 
console.log(str2) 
// 预期输出: 
// 如何使用双引号" 
// 在这里使用了\"来代表双引号。如果在双引号定义的字符串中直接使用双引号,将出现语法错误。单引号同理。 

// 如果使用模板字符串的方式定义字符串,可以直接使用回车换行。但是要在其中使用反引号`,也必须转义
任务练习:

①:要想以下JavaScript代码运行符合预期,空格处需要填写什么?

var str = ________ 
console.log(str) 

预期输出: 
小明说:"吃饭吗?" 
我说:"已经吃过了"

在这里插入图片描述
②:以下的JavaScript代码的预期输出是?

var str = '\'这是为什么呢?\''
console.log(str)
预期输出: 
____

'这是为什么呢?'

③:以下的JavaScript代码的预期输出是?

var str = '\"这是为什么呢?"'
console.log(str)
预期输出: 
____

"这是为什么呢?"

④:以下的JavaScript代码的预期输出是?

var str = '\\n这是为什么呢?"'
console.log(str)
预期输出: 
____

\n这是为什么呢?"

字符串常见方法与属性:

任务目标:

理解与灵活运用JavaScript的String对象的常用属性
理解与灵活使用JavaScript的String对象的常用方法

任务背景:

字符串在JavaScript中几乎无处不在,在你处理用户的输入数据的时候,在读取或设置DOM对象的属性时,在操作cookie时,当然还有更多。JavaScript的核心部分提供了一组属性和方法用于通用的字符串操作,如分割字符串,改变字符串的大小写,操作子字符串等。

任务内容:
String对象属性:

在这里插入图片描述

String对象的常用方法:

在这里插入图片描述

任务练习:

①:要想以下JavaScript代码符合预期,空格处应该填什么?

var a = "abccba"._______("b")
console.log(a)
预期输出结果:
4

思路:根据代码我们得知,属于根据字符串返回他在整个字符串索引位置的题型,如果使用indexOf()方法则结果是1,那么另外一个方法lastIndexOf()则返回符合预期输出结果

lastIndexOf

②:要想以下JavaScript代码符合预期,空格处应该填什么?

var str = "a1-b2-c3-d4"
console.log(str._____('-'))
预期输出结果:
['a1', 'b2', 'c3', 'd4']

split

③:要想以下JavaScript代码符合预期,空格处应该填什么整数?

var str = "JavaScript是一门动态类型的语言"
console.log(str.substring(4, ____))
预期输出结果:
Script

10

④:以下的JavaScript代码的预期输出是?

var str = "AbcDe"
console.log(str.toUpperCase())
预期输出结果:

ABCDE

⑤:以下的JavaScript代码的预期输出是?

var str = "Chinese"
console.log(str.charAt(3))
预期输出结果:
____

n

数组常见方法与属性:

任务目标:

理解并掌握JavaScript中数组定义
理解并掌握JavaScript中数组中值的访问与修改
理解并掌握JavaScript中数组常见属性

任务背景:

数组是大多数编程语言的内置数据结构。我们可以利用数组顺序存储一系列的值,使用相关的函数或者方法可以对这些值进行处理。合理的使用数组能给我们编码带来很大的便利。

数组定义:
// 直接使用中括号就能定义一个数组,数组中的值的类型不必相同,数组中可以嵌套数组 
var arr = [1, 2, 5, 'init', ['apple', 2, 4]]
数组中值的访问与修改:
var arr = [1, 2, 5, 'init', ['apple', 2, 4]] // 可以使用下标(或者叫索引)来取数组中的值。下标是从0开始的 

arr[0] // 取下标为0的值,即1 

arr[3] // 取下标为3的值,即'init' 

// 我们可以给数组中某一个下标的值进行重新赋值,即修改该下标的值 
arr[0] = 'name' // 将字符串'name'赋值给数组arr下标为0的位置,此时arr[0]的值就为'name'了,而不是1了
数组常见属性:

length:

访问一个数组的length属性,返回该数组的长度,即该数组元素的个数

var arr = [1, 2, 5, 'init', ['apple', 2, 4]]
 
arr.length // 返回数组arr的长度,即5
数组常见方法:

对数组的每个元素执行一次给定的函数

var array1 = ['a', 'b', 'c'] 

array1.forEach( function(element) { 
console.log(element) 
}) 
// 预期输出 
// "a" 
// "b" 
// "c"

indexOf():

返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。

var beasts = ['ant', 'bison', 'camel', 'duck', 'bison'] 
console.log(beasts.indexOf('bison')) // 预期输出: 1 
// start from index 2 
console.log(beasts.indexOf('bison', 2)) // 预期输出: 4
console.log(beasts.indexOf('giraffe')) // 预期输出: -1

join():

将一个数组的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。

var elements = ['Fire', 'Air', 'Water'] 
console.log(elements.join()) // 预期输出: "Fire,Air,Water" 
console.log(elements.join('')) // 预期输出: "FireAirWater" 
console.log(elements.join('-')) // 预期输出: "Fire-Air-Water"

map():

创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。

var array1 = [1, 4, 9, 16]; // 传入一个回调函数给map方法 
var map1 = array1.map(function (x) { return x * 2 });
console.log(map1); // 预期输出: Array [2, 8, 18, 32]

pop():

从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。

var plants = ['broccoli', 'cauliflower', 'cabbage', 'kale', 'tomato']; 
console.log(plants.pop()); // 预期输出: "tomato" 
console.log(plants); // 预期输出: Array ["broccoli", "cauliflower", "cabbage", "kale"] 
plants.pop(); 
console.log(plants); // 预期输出: Array ["broccoli", "cauliflower", "cabbage"]

push:

将一个或多个元素添加到数组的末尾,并返回该数组的新长度。

var animals = ['pigs', 'goats', 'sheep']; 
var count = animals.push('cows'); 
console.log(count); // 预期输出: 4 
console.log(animals); // 预期输出: Array ["pigs", "goats", "sheep", "cows"] 
animals.push('chickens', 'cats', 'dogs'); 
console.log(animals); // 预期输出: Array ["pigs", "goats", "sheep", "cows", "chickens", "cats", "dogs"]

reverse:

将数组中元素的位置颠倒,并返回该数组。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。该方法会改变原数组。

var array1 = ['one', 'two', 'three']; 
console.log('array1:', array1); // 预期输出: "array1:" Array ["one", "two", "three"] 
var reversed = array1.reverse(); 
console.log('reversed:', reversed); // 预期输出: "reversed:" Array ["three", "two", "one"] 
// 注意:该方法会修改原数组 
console.log('array1:', array1); // 预期输出: "array1:" Array ["three", "two", "one"]

shift:

从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。

var array1 = [1, 2, 3]; 
var firstElement = array1.shift(); 
console.log(array1); // 预期输出: Array [2, 3] 
console.log(firstElement); // 预期输出: 1

slice:

返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括end)。原始数组不会被改变。

var animals = ['ant', 'bison', 'camel', 'duck', 'elephant']; 
console.log(animals.slice(2)); // 预期输出: Array ["camel", "duck", "elephant"] 
console.log(animals.slice(2, 4)); // 预期输出: Array ["camel", "duck"] 
console.log(animals.slice(1, 5)); // 预期输出: Array ["bison", "camel", "duck", "elephant"] 
console.log(animals.slice(-2)); // 预期输出: Array ["duck", "elephant"] 
console.log(animals.slice(2, -1)); // 预期输出: Array ["camel", "duck"]

sort:

对数组的元素进行排序,并返回数组。

var months = ['March', 'Jan', 'Feb', 'Dec']; 
months.sort(); 
console.log(months); // 预期输出: Array ["Dec", "Feb", "Jan", "March"] 
var array1 = [1, 30, 4, 21, 100000]; 
array1.sort(); 
console.log(array1); // 预期输出: Array [1, 100000, 21, 30, 4]

// 如果sort()方法调用的时候没有传入回调函数,会将数组转成字符串然后进行大小比较并升序排列,字符串的大小比较是按照字典顺序进行的。所以10000会比21小。

// 如果sort()方法调用的时候传入了回调函数,会按回调函数的返回值来决定相邻两个元素的排序,例如:
var array1 = [1, 30, 4, 21, 100000]; 
array1.sort(function (item1, item2) {
return item1 - item2
}); 
console.log(array1); // 预期输出: Array [1, 4, 21, 30, 100000]

// 这里面的item, item2参数就是array1里面相邻的两个元素
// 如果这个回调函数返回的结果大于0,那么item2将排在item1的前面
// 如果这个回调函数返回的结果小于0,那么item1将排在item2的前面
// 如果这个回调函数返回的是0,那么item1和item2的位置不变

unshift:

将一个或多个元素添加到数组的开头,并返回该数组的新长度(该方法修改原有数组)。

var array1 = [1, 2, 3]; 
console.log(array1.unshift(4, 5)); // 预期输出: 5 
console.log(array1); // 预期输出: Array [4, 5, 1, 2, 3]
任务练习:

①:要想以下JavaScript代码符合预期,空格处应该填什么(表达式除外)?

var arr = ['e', 'd', 'f'] 
var str = arr.___() 
console.log(str) 

预期输出结果: e,d,f

join

②:要想以下JavaScript代码符合预期,空格处应该填什么(表达式除外)?

var arr = ['tree', 795, [0, 1, 2]]; 
arr.______([4,9,10]) 
console.log(arr[0][1]) 

预期输出结果: 9

unshift

③:要想以下JavaScript代码符合预期,空格处应该填什么(表达式除外)?

var arr = [1,2,3,'a','t',45,'r',9]; 
var newArr = arr.slice(____, 6) 
console.log(newArr[2])

预期输出结果: 
45

3

④:要想以下JavaScript代码符合预期,空格处应该填什么(表达式除外)?

var arr = ['a', 'b', 'c', 'd']; 
var str = arr.______().join('')
console.log(str) 

预期输出结果: 
dcba

reverse

⑤:要想以下JavaScript代码符合预期,空格处应该填什么整数?

var arr = [
    {
        name: '张三',
        age: 24
    },
    {
        name: '李四',
        age: 32
    },
    {
        name: '王五',
        age: 19
    }
]

arr.sort(function (item1, item2) {
    return item1.age - item2.age
})

console.log(arr[____].name)

预期输出结果: 
李四

sort() 从小到大排序

2

总结:

这个系列后面还会继续更新,希望对正在学c1 的小伙伴有所帮助,创作不易感谢大家的支持喜欢的话可以给个一件三连!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C1认证学习笔记(第三章) 的相关文章

  • 茉莉花节点没有输出

    我是 JavaScript Node js 和 jasmine 的新手 我正在尝试运行 Node Craftsman Book 一书中的测试 FilesizeWatcher 我创建了 package json 文件并运行 npm insta
  • browserify 错误 /usr/bin/env: 节点: 没有这样的文件或目录

    我通过 apt get install 安装了 node js 和 npm 以及所有依赖项 然后安装了 browserify npm install browserify g 它完成了整个过程 看起来安装正确 但是当我尝试为此做一个简单的捆
  • 如何制作像Stackoverflow一样的可折叠评论框

    我正在构建一个网站 并且有一个状态更新列表 我希望允许用户为列表中的每个项目撰写评论 但是我正在尝试实现一个类似于堆栈溢出工作方式的用户界面 特别是可折叠的评论表单 列表 用户在其中单击对列表中的特定状态更新添加评论 并且在列表中的该项目下
  • 从 DOM 中删除后,动态添加的 JavaScript 脚本会继续执行

    因此 我正在创建一个 SPA 并使用 AJAX 将 HTML 页面加载到我网站的索引页面中 问题是 当包含我的一个页面时 它似乎会徘 徊并执行其中的 JavaScript 代码 即使它随后从 DOM 中删除 索引 html 正文 div d
  • 记录jQuery中调用的方法和参数

    假设我有 jQuery 并且加载了几个插件 我运行一些这样的代码 someSelector someMethod someParam someOtherParam someOtherSelector someOtherMethod anot
  • React延迟加载/无限滚动解决方案

    我花了一段时间才弄清楚如何使用优秀的延迟加载图像React Lazyload 组件 https github com jasonslyvia react lazyload 演示在滚动时延迟加载图像 但在测试时我无法获得相同的行为 罪魁祸首是
  • WebDriver:更改事件未触发

    我有一个使用 KnockoutJS 的应用程序 我正在尝试编写一些测试表单的测试 如果您不了解 KnockoutJS 简单来说 它提供了从我的视图到我的数据模型的绑定 这意味着当我在输入字段中键入值时 我的基础对象会自动使用该输入字段值进行
  • 页面点击其他路径后 $timeout 继续运行

    我在用yo angular fullstack生成器来构建我的网站 当用户注册该网站时 它将发送一封带有链接的激活电子邮件 当用户点击该链接时 会显示激活成功并超时进入主页 但是 当超时未结束 用户点击页面中的任何其他链接时 会跳转到其他页
  • 正则表达式 - 避免表达式中出现字符串

    我正在尝试创建一个应该匹配以下情况的正则表达式 如果单词完全匹配 first second third 那么匹配应该失败 但如果它周围有任何字符 那么应该匹配该字符串 我还需要避免字符串中的某些字符集 如果这些字符是字符串的一部分 则匹配结
  • django ajax post 403被禁止

    使用 django 1 4 当我尝试从我的 javascript 做我的 django 服务器上的帖子时 我收到 403 错误 我的 get 工作正常 尽管问题仅出在帖子上 也尝试过 csrf exempt但没有运气 更新 我现在可以发布我
  • Rails 4 - 带有 dependent-fields-rails 的条件 JS

    我正在尝试弄清楚如何在我的 Rails 4 应用程序中使用 dependent fields rails gem 我迷路了 我已将 underscore js 包含在我的供应商 javascripts 文件夹中 并更新了我的 applica
  • 对数字和字母元素的数组进行排序(自然排序)

    假设我有一个数组 var arr 1 5 ahsldk 10 55 3 2 7 8 1 2 75 abc huds 我尝试对其进行排序 我得到了类似的东西 1 1 10 2 2 3 5 55 7 75 8 abc ahsldk huds 注
  • 如何检查jquery数据表中的每个复选框?

    我有一个第一列带有复选框的表格 我使用 jQuery DataTable 插件显示我的表格 我制作了 2 个链接来选择 取消选择每个复选框 这是选择全部的一个 a href Select all a 和 JavaScript functio
  • CryptoJS 和 Pycrypto 一起工作

    我正在使用 CryptoJS v 2 3 加密 Web 应用程序中的字符串 并且需要在服务器上使用 Python 对其进行解密 因此我使用 PyCrypto 我觉得我错过了一些东西 因为我无法让它工作 这是JS Crypto AES enc
  • IE6 丢失查询字符串

    我有一个使用 javascript 从查询字符串中获取值的页面window location 从网络服务器运行时效果很好 但如果我通过将其放在地址栏中使用 IE6 在本地运行它 c mysite index htm 网站创建的任何查询字符串
  • Javascript - 如何计算数字的平方?

    使用 JavaScript 函数 function squareIt number return number number 当给定数字 4294967296 时 函数返回 18446744073709552000 每个人都知道真正的答案是
  • 获取 2 个日期之间的月份名称

    我有两个约会from and to 我想获取这两个日期之间的所有月份名称 以下是我的代码 var monthNames January February March April May June July August September
  • 使用 dnode 从服务器向客户端发送消息

    几个月前 我发现了 nowjs 和 dnode 并最终使用了 nowjs 并且https github com Flotype nowclient https github com Flotype nowclient 用于客户端 服务器双向
  • jQuery fadeOut 一个 div,fadeIn 另一个 div 在其位置

    我正在尝试一个简单的 jQuery 脚本来淡出一个 div 并淡入另一个 div 但由于某种原因 第一个 div 永远不会淡出 这可能是代码的一个明显问题 但我似乎无法弄清楚 div div div div
  • Angular 5 中 Observable.ForkJoin 的重复 Http 请求

    我有一个 Angular 5 应用程序 组件中包含以下代码 ngOnInit Observable forkJoin this highlightedInsight this insightService getHighlightedIns

随机推荐

  • LeetCode题目笔记——17.19消失的两个数字

    文章目录 题目描述 题目难度 困难 方法一 暴力 代码 代码优化 方法二 数学方法 代码 总结 题目描述 题目直达 题目难度 困难 方法一 暴力 虽然题目说你能在 O N 时间内只用 O 1 的空间找到它们吗 但是也没有限制我们不能用暴力
  • 深度学习之学习路线

    本文知识来源参考网络与专业书籍 文章目录 一 先简单认识什么是深度学习 二 深度学习之学习路线推荐 1 学习基础 2 学习书籍与视频推荐 一 先简单认识什么是深度学习 直接看图 深度学习是属于人工智能 再细分下来就是深度学习是一种比较火的机
  • Scala安装教程

    1 Scala官网滑到最下面如图 选择Allversions 2 我们将下载2 12 16版本 如图下 3 选scala 2 12 16 zip安装 4 先将scala 2 12 16zip解压为文件夹我解压到了D盘的scalal文件夹下面
  • 计算机网络物理层概述

    物理层 一 物理层基本概念 用于物理层协议常被称为物理层规程 物理层有四个特性 1 机械特性 指明接口所用接线器的形状和尺寸 引脚数目和排列 固定和锁定装置等 平时常见的各种规格的插件都有严格的标准化规定 2 电器特性 指明在接口电缆的各条
  • OpenSSL生成密钥对

    OpenSSL工具安装 Linux用户 以Ubuntu为例 sudo apt get install openssl Windows用户 开发者可以在OpenSSL官方网站下载Windows的 OpenSSL安装包 进行安装 RSA私钥及公
  • 泰勒公式的介绍、应用及常见题型

    目录 一 简介 1 泰勒公式及其证明过程 2 两种类型的余项 3 麦克劳林公式 二 泰勒公式常见题型 1 用泰勒公式展开函数 2 用泰勒公式求极限 3 用泰勒公式讨论无穷小的比较 4 用泰勒公式证明等式和不等式 一 简介 1 泰勒公式及其证
  • JAVA实现简易HTTP服务器

    说实话 之前完全没有想过 我还能写出服务器 感觉服务器这么高端的东西 能会用就不错了 还能写 不吐槽了 开始了 这次的作业是搭建一个服务器 要能接收请求 并给浏览器返回正确响应 项目的下载地址 项目目标 实现一个简易的多线程服务器 可以处理
  • Linux 内核中的 Device Mapper 机制

    Linux 内核中的 Device Mapper 机制 尹 洋 在读博士生 尹洋 中科院计算所国家高性能计算机工程技术研究中心的在读博士生 主要从事服务部署和存储资源管理以及Linux块设备一级的开发和研究工作 简介 本文结合具体代码对 L
  • macOS命令行终端隐藏主机名和用户名

    首先要区分自己的终端用的是Bash Shell还是Zsh Shell 网上很多教程都是Bash的 所以如果你用的是Zsh 那按照Bash的步骤来设置是不会有效果的 从2019年起 macOS的默认Shell由Bash改为Zsh 查看当前使用
  • 手把手教你安装Eclipse最新版本的详细教程 (非常详细,非常实用)

    简介 首先声明此篇文章主要是针对测试菜鸟或者刚刚入门的小伙们或者童鞋们 大佬就没有必要往下看了 写这篇文章的由来是因为后边要用这个工具 但是由于某些原因有部分小伙伴和童鞋们可能不会安装此工具 为了方便小伙伴们和童鞋们的后续学习和不打击他们的
  • GET报错注入(Sqli-labs第一题详解)

    文章目录 一 找注入点 二 order by判断列数 三 union联合注入 判断数据显示点 四 爆库 爆表 一 找注入点 单引号注入题目 在参数后面加一个单引号 id 1 数据库报错 单引号匹配出错 即添加的单引号成功被数据库解析 可以通
  • es文件浏览器怎么开ftp服务器,es文件浏览器怎么开ftp服务器

    es文件浏览器怎么开ftp服务器 内容精选 换一换 怎样上传文件到Windows操作系统云服务器 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具 将文件上传到云服务器 例如QQ exe 在本地主机和Windows云服务
  • qt在打包的时候提示应用程序无法正常启动(0xc000007b)

    造成这种现象的原因是你的电脑中有多个版本的qt 导致环境路径会出现有问题 解决的方法是 1 找到你配置好的开发程序使用的QT版本 进入Qt命令行工具 使用windeployqt命令来进行打包
  • Mac 安装 vue 环境

    安装 nodejs 首先 安装 nodejs 官网下载node https nodejs org zh cn 接下来 安装下载下来的软件包 安装完成后 在终端输入 node v 查看是否安装成功 安装 cnpm 终端输入 sudo npm
  • 【华为OD统一考试B卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • Linux下面安装MySQL详细步骤讲解

    今天下午在Linux下装了MySQL 我的是虚拟机里面装的CentOs7版本 装mysql的过程中遇到了一些问题 网上的回答又是乱七八糟 为了使朋友们少走弯路 特把我今天安装的全部流程总结如下 1 首先我是先从官网下下载一个 mysql 5
  • 在centos在部署分布式文件存储系统Minio

    docker部署以及详细文档自取 链接 https pan baidu com s 14NhCk1SQZEHqzMubpUD0eQ 提取码 xyxy 0 应用场景 电商网站 海量商品图片 视频网站 海量视频文件 网盘 海量文件 社交网站 海
  • LeetCode题解—260.只出现一次的数字Ⅲ

    题目地址 260 只出现一次的数字 III 力扣 LeetCode 题解 这道题是基于寻找只出现一次的数字 上的拓展 136 只出现一次的数字 力扣 LeetCode 在 中 我们只需要把所有的数字异或一遍即可 因为只有一个数字是唯一的 但
  • 2.23怎么在OrCAD原理图中显示与隐藏元器件的Value值?【OrCAD原理图封装库50问解析】

    笔者电子信息专业硕士毕业 获得过多次电子设计大赛 大学生智能车 数学建模国奖 现就职于南京某半导体芯片公司 从事硬件研发 电路设计研究 对于学电子的小伙伴 深知入门的不易 特开次博客交流分享经验 共同互勉 全套资料领取扫描文末二维码 温馨提
  • C1认证学习笔记(第三章)

    C1认证 三 JS基础 JavaScript变量命名规则 任务目标 任务背景 语法层面 工程层面 任务练习 逻辑运算 任务目标 任务背景 比较运算符 逻辑运算符 知识拓展 任务练习 隐式类型转换 任务目标 任务背景 任务内容 字符串和数字的