以左花括号开始,以右花括号结束。 我是 Web 页面 我是段落。 我是一个div。...do … while 执行一个语句块,在条件语句为 true 时继续执行该语句块。 for 在条件语句为 true 时,可以将代码块执行指定的次数。...,是空的 name="xiaoming"; //用等号向变量赋值 var name="xiaoming"; //在声明变量时直接赋值 var name="zhangsan", age=18, sex...可以使用字符来定义和创建 JavaScript 对象,空格跟换行不是必须的 由花括号分隔。...函数就是包裹在花括号中的代码块,前面使用了关键词 function。
以左花括号开始,以右花括号结束。 我是 Web 页面 我是段落。 我是一个div。...,是空的 name="xiaoming"; //用等号向变量赋值 var name="xiaoming"; //在声明变量时直接赋值 var name="zhangsan", age=18, sex...对象 可以使用字符来定义和创建 JavaScript 对象,空格跟换行不是必须的 由花括号分隔。...函数就是包裹在花括号中的代码块,前面使用了关键词 function。...全局 JavaScript 变量 在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。 JavaScript 变量的生存期 JavaScript 变量的生命期从它们被声明的时间开始。
第一轮:声明并初始化函数参数;声明局部变量,包括将匿名函数赋给一个局部变更,但并不初始化它们;声明并初始化函数。 2.每当函数被调用的时候,就会产生一个执行环境。...所有函数中定义的变量和函数都是执行环境的一部分。JS把变量作为属性保存在一个对象上,这个对象称为执行环境对象。 3.JS把声明和初始化的变量当作执行环境对象的属性。...4.原型上的属性就像是从原型创建的对象上的静态变量 D.函数——更深入的窥探 1.函数是JS中的第一类(first-class)对象。它们可以保存在变量中,可以有属性甚至可以作为参数传给调用函数。...把左括号、左花括号或者左方括号放在开始行的末尾 在分隔符(括号、花括号或者方括号)的里面把代码缩进一个层级 右括号、右花括号或者右方括号单独占一行 5.使用空格来区别函数和关键字 函数名后面没有空格...6.当函数需要三个以上的参数时,使用具名参数(named arguments),因为位置参数的含义容易忘记且不能进行自我说明 7.每条变量赋值语句点用一行 D.函数 1.使用工厂模式构造对象 2.避免伪类对象构造器
,在标签中,会执行标签中的Js程序。...ps:每一行,可以写多条js语句 JavaScript代码块 js语句可以使用 花括号 {……} 组合在代码块中 代码块的作用就是定义 同一时刻执行的语句。...; = 符号等同于变量 赋值 // 本例中,x被定义为变量;x被赋值7。...var cars = ["Porsche","Volvo","BMW"] ; JavaScript 对象 Js对象用花括号书写,对象属性是 name:value 键值对,由逗号分隔。...NULL 在JavaScript中,null是“nothing"。被看做不存在的事物。 但js中,NULL的数据类型是对象。
预解析会把变量和函数的声明在代码执行之前执行完成。 4.2 变量预解析 预解析也叫做变量、函数提升。 变量提升(变量预解析): 变量的声明会被提升到当前作用域的最上面,变量的赋值不会提升。...解释:该段代码执行之前,会做变量声明提升,fn在提升之后的值是undefined;而fn调用是在fn被赋值为函数体之前,此时fn的值是undefined,所以无法正确调用。...5.2 创建对象的三种方式 对象的创建 利用字面量创建对象:使用对象字面量创建对象:就是花括号 { } 里面包含了表达这个具体事物(对象)的属性和方法;{ } 里面采取键值对的形式表示 键:相当于属性名...调用 sayHi 方法,注意,一定不要忘记带后面的括号 变量、属性、函数、方法总结 属性是对象的一部分,而变量不是对象的一部分,变量是单独存储数据的容器 变量:单独声明赋值,单独存在 属性:对象里面的变量称为属性...new关键字的作用 在构造函数代码开始执行之前,创建一个空对象; 修改this的指向,把this指向创建出来的空对象; 执行函数的代码; 在函数完成之后,返回this——即创建出来的对象。
1.对象 1.1 对象的相关概念 什么是对象? 在 JavaScript 中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。...使用对象记录上组数据为: var obj = { "name":"张三疯", "sex":"男", "age":128, "height":154 } JS中的对象表达结构更清晰...2 创建对象的三种方式 利用字面量创建对象 花括号 { } 里面包含了表达这个具体事物(对象)的属性和方法;{ } 里面采取键值对的形式表示 键:相当于属性名 值:相当于属性值,可以是任意类型的值...() obj.sayHi(); 变量、属性、函数、方法总结 属性是对象的一部分,而变量不是对象的一部分,变量是单独存储数据的容器 变量:单独声明赋值,单独存在 属性:对象里面的变量称为属性...new关键字的作用 在构造函数代码开始执行之前,创建一个空对象; 修改this的指向,把this指向创建出来的空对象; 执行函数的代码 在函数完成之后,返回this---即创建出来的对象
, …, 参数N) => { 函数声明 } // 当只有一个参数时,圆括号是可选的 const test2 = (单一参数) => { 函数声明 } const test2 = 单一参数 => { 函数声明...} // 没有参数时,圆括号不能省略 const test3 = () => { 函数声明 } // 当函数体只是 return 一个单一表达式时,可以省略花括号和 return 关键词 const...test4 = () => { return 表达式(单一) } const test4 = () => 表达式(单一) // 函数体返回对象字面表达式时,如果省略花括号和 return 关键词,返回值需要加括号...传递参数为 {} 时,因为被解构变量既不为空,也不是 undefined,所以不会使用解构赋值的默认参数 {}。...不传参时,即被解构变量为空,那么会使用形参的默认参数 {},形参的赋值过程相当于 {x, y = 'World'} = {},注意这里等号右边的空对象,是形参对象的默认值。
逻辑或操作符||在第一个操作数为非正值时返回第二个操作数。JavaScript函数定义的参数如果不被传入就是会设置为undefined,逻辑或操作符在处理参数个数补丁的场景中应用很普遍。...没有使用new操作符调用的函数Person()返回结果为undefined(在非严格模式下,全局对象的name属性将被赋值为Nicholas)。...因此建议开发者尽量避免在块级代码内使用字面量声明函数(使用赋值表达式声明函数并不会引起以上问题)。...与上例的唯一区别是,两个参数被包含在圆括号内。 如果箭头函数没有参数,则必须将一组空圆括号传入。...如果要定义一个空箭头函数,可以使用以下方式: var doNothing = () => {}; // 等价于: var doNothing = function() {}; 需要注意上述代码中的,花括号用来定义函数体
答案:AB C问题:剩余参数只能出现在参数列表的最后一个位置 D问题:函数的参数中,剩余参数只能有一个 2、声明类型的语法,正确的是?...ABD A、类型中的构造函数,用来在创建对象的同时初始化对象属性 B、创建指定类型的对象时,会自动调用执行 C、类型中的构造函数,需要手工调用执行 D、类型中的普通函数,需要手工调用执行 答案:...,带有花括号的情况下需要通过return才能返回数据 C问题:函数代码部分,省略花括号的情况下不需要添加return关键词可以直接返回数据 7、关于类和对象的描述,正确的是?...ACD A-原生JS中默认值的添加 B-数据覆盖,不是默认值 C-ES6语法中给形式参数添加默认值 D-箭头函数中使用ES6语法的默认值 10、面向对象的继承关系中,正确的操作语法是?...A B问题:继承语法,不是类型后面添加括号的语法 C问题:继承的父类不能添加括号 D问题:JS中的继承是单继承机制,不能同时继承多个类型 二、简答题 1、观察下面的代码,最终控制台会输出什么结果呢
函数头描述 main() 和OS(UNIX/Linux、Windows、mac os等)直接的接口。 空括号的main() 不接受任何参数。...每个函数都有一个开始花括号和一个结束花括号,两个花括号各占一行。 函数中的语句都相对于花括号进行缩进。 与函数名称相关的圆括号周围没有空白。 2....声明通常指出要存储的数据类型和程序对存储在内存里的数据使用的名称。 程序中的声明语句叫作定义声明语句,简称定义。定义会使得编译器为变量分配内存。 ⚠️注意:声明不一定是定义。...void bucks(double); 关键字void不接受任何参数。如果省略void,让括号为空,则C++解释为一个不接受任何参数的隐式声明。...int rand(void); 4.3 用户定义的函数 对于库函数,在使用之前必须提供其原型,通常把原型放在main()定义之前。 函数格式 函数格式为:一个函数头 + 花括号的函数体。
(placeholder) • 使用:用来初始化一个变量,这个变量可能赋值为一个对象;用来和一个已经初始化的变量比较,这个变量可以是也可以不是一个对象;当函数的参数期望是对象时,用作参数传入...5.对象直接量:在第一行包含左花括号,每一个属性的名值对都独占一行,并保持一个缩进,最后右花括号也独占一行 6.数组直接量:不用new Array,直接用[……] 二、注释 A.单行注释 1.注释前后加空格...,每个变量的初始化独占一行,赋值运算应当对齐,没有初始值的变量应当出现在var语句的尾部 B.函数声明 1.函数声明也会被提前,推荐总是先声明JS函数然后使用函数,函数内部的局部函数应当紧接着变量声明之后声明...2.函数声明不应当出现在语句块之内 C.函数调用间隔 1.在函数名和左括号之间没有空格 D.立即调用的函数 1.为了让立即执行的函数能够被一眼看出来,可以将函数用一对圆括号包裹起来 E.严格模式 1....3.难以测试:任何依赖全局变量才能正常工作的函数,只有为其重新创建完事的全局环境才能正确地测试它。 B.意外的全局变量 1.给一个未被var语句声明的变量赋值时,JS就会自动创建一个全局变量。
,eslint: func-style 原因:这样做会导致函数声明被提升,这意味着很容易在文件中定义此函数之前引用它,不利于可读性和可维护性。...,eslint:wrap-iife 原因:一个立即执行匿名函数表达式是一个单一的单元,将其及其调用括号包装在括号中,能够清楚地表达这一点。...obj.key : 1 } 不要给参数重新赋值,eslint: no-param-reassign 原因:参数重新赋值可能会导致无法预期的行为,尤其是当操作 arguments 对象时,也可能导致优化问题...Object.prototype.hasOwnProperty.call( httpMagicObjectWithAVeryLongName, httpMethod ) )) 函数如果只接收一个参数并且没使用用花括号...,则省略圆括号,否则为了清晰明确则使用圆括号包裹参数,注意:总是使用圆括号也是可以接受的,eslint 中的 “always” 选项,eslint: arrow-parens // bad [1, 2,
调用的拷贝函数 从上述看,在C++中这三种方式都被指派为初始化表达式,但是只有花括号任何地方都能被使用。因此花括号初始化又叫统一初始化。...Widget w8{std::move(w4)}; // 使用花括号,调用std::initializer_list构造函数 接着上述,在使用{}初始化时,只要参数能强转换为initializer_list...w4{10, 5.0}; // 使用花括号初始化,调用第二个构造函数 最后在使用空参数{}初始化时,会匹配默认构造函数,只有传入{}才会匹配initializer_list构造函数。...C++11中实现一个空类,编译器会自动声明六个函数:默认构造函数、析构函数、拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符。 ...Rule of Three规则规定:如果类中声明了拷⻉构造函数,拷⻉赋值运算符,或者析构函数三者之⼀,就应该也声明其余两个。
{a:1,a:1} "no-dupe-args": 2,//函数参数不能重复 "no-duplicate-case": 2,//switch中的case标签不能重复 "no-else-return":..."arrow-parens": 0,//箭头函数用小括号括起来 "arrow-spacing": 0,//=>的前/后括号 "accessor-pairs": 0,//在对象中使用getter/setter...3个参数 "max-statements": [0, 10],//函数内最多有几个声明 "new-cap": 2,//函数名首行大写必须使用new方式调用,首行小写必须用不带new方式调用 "new-parens...": 2,//new时必须加小括号 "newline-after-var": 2,//变量声明后是否需要空一行 "object-curly-spacing": [0, "never"],//大括号内是否允许不必要的空格..."wrap-regex": 0,//正则表达式字面量用小括号包起来 "yoda": [2, "never"]//禁止尤达条件 3.vue cli关闭eslint 找到.eslintrc.js的文件中,
|| 指针不能自动转换为int,即便指针的值为0 赋值运算符的优先级是很低的,可以利用这一点要增加括号才能简化循环的操作。...reinterpret_cast非常危险,它可以将任何指针类型重新指向,例如将char*改为int*,这会很容易引发难以追踪的错误 5 语句 用花括号括起来的多条语句称为复合语句或语句块,在花括号中的变量有同个作用域...我们无法在这个函数中修改这个对象的内容 一般来说当一个函数概念上属于某个类但并不在类内,则将其与类的声明放在同一个文件中 对象是在构造初始化完成后(执行构造函数体前的瞬间)获得const或引用等属性的...,可以很方便地在函数体是空时完成构造函数中对值的赋值 用vector类来代劳内存分配等能避免拷贝构造时复杂的传值过程 访问控制符有效范围直到下个访问控制符出现或者到达类的结尾,控制符可以出现多次 有时需要外部的接口函数也可以访问类内的非公有成员...因此一方面是最好保持参数顺序与声明顺序相同以方便查找,另一方面尽量避免用某些成员来初始化其他的成员以防止初始化顺序导致的问题 C11增加了“委托构造函数”,即可以在构造函数初始值列中调用非委托的构造函数了
形参:函数定义时设置接收调用时传入 实参:函数调用时传入小括号内的真实数据 参数 说明 形参 形式上的参数,在函数定义的时候传递的参数,当前并不知道是什么。...形参简单理解为:不用声明的变量。 实参和形参的多个参数之间用逗号,分隔。 12.2.2、函数形参和实参数量不匹配时 在JavaScript中,形参的默认值是undefined。...声明函数的时候,函数名括号里面的是形参,形参的默认值为undefined。 调用函数的时候,函数名括号里面的是实参。 多个参数中间用逗号分隔。...就是花括号 { } 里面包含了表达这个具体事物(对象)的属性和方法,{ } 里面采取键值对的形式表示 。...给空对象添加属性和方法 通过对象操作属性和方法的方式,来为对象增加属性和方法。
一个常量不可以被重新赋值,并且不能被重复声明.所以,虽然可以在声明一个常量的时候不进行初始化,但这样做是没有意义的,因为这个常量的值永远会保持undefined。... ES6 中的类实际上就是个函数,而且正如函数的定义方式有函数声明和函数表达式两种一样,类的定义方式也有两种,分别是:类声明、类表达式。...Polygon {} 类表达式 类表达式是定义类的另外一种方式,就像函数表达式一样,在类表达式中,类名是可有可无的。...## 类的成员需要定义在一对花括号 {} 里,花括号里的代码和花括号本身组成了类体。...静态方法通常用于为应用程序创建实用函数。
块作用域 — 由花括号{}创建的范围 作用域链 — 函数可以上升到它的外部环境(词法上)来搜索一个变量,它可以一直向上查找,直到它到达全局作用域。...变量和函数声明(创建阶段) 第一步是在内存中为所有变量和函数分配空间。 但请注意,除了undefined之外,尚未为变量分配值。...在全局上下文中,JS还添加了: 全局对象(浏览器中是 window 对象,NodeJs 中是 global 对象) this 指向全局对象 2. 执行 接下来,JS 引擎会逐行执行代码。...然后停留在队列中,只有当调用堆栈(call stack)为空时才会被压入堆栈。 ? 代码示例 要熟悉JS引擎,最好的方法就是使用它,再来些有意义的例子。...,它调用我们的传入函数来获取值3.然后它将args/value键值对存储在缓存对象中。
/不能对var声明的变量使用delete操作符 "no-div-regex": 1,//不能使用看起来像除法的正则表达式/=foo/ "no-dupe-keys": 2,//在创建对象字面量时不允许键重复...{a:1,a:1} "no-dupe-args": 2,//函数参数不能重复 "no-duplicate-case": 2,//switch中的case标签不能重复 "no-else-return":..."arrow-parens": 0,//箭头函数用小括号括起来 "arrow-spacing": 0,//=>的前/后括号 "accessor-pairs": 0,//在对象中使用getter/setter...": 2,//new时必须加小括号 "newline-after-var": 2,//变量声明后是否需要空一行 "object-curly-spacing": [0, "never"],//大括号内是否允许不必要的空格..."object-shorthand": 0,//强制对象字面量缩写语法 "one-var": 1,//连续声明 "operator-assignment": [0, "always"],//赋值运算符
("hello world"); 3 })() 函数体被一个小括号包裹起来,然后后面紧跟着一个小括号,这样当函数被声明之后,就立刻被调用。...在比较古老的js代码中,大家都是这种方法来封装代码的,但是ES2015自带模块化语法,因此这种封装的写法就不太常见了,大家只做了解即可。...| 100; 3 y = y || 200; 4 return x + y; 5 } 上面的实例代码,利用逻辑或运算符的能力重新给参数赋值,也就是说如果有参数传入,则赋值为传入的参数,如果没有...return x + y; 4 } 五、箭头函数 在此前的课程中,我们学习了两种方法定义函数, 函数声明 函数表达式 在ES2015中增加了箭头函数的语法,可以使用=>来定义函数,我们来对比一下三种写法...=>右侧的花括号存放函数体。
领取专属 10元无门槛券
手把手带您无忧上云