1.数据类型(number,boolean,string,null,undefined,symbol,object)

es是动态语言,弱类型语言,虽然先声明了变量,但是变量可以重新赋值任意类型
弱类型,不需要强制类型转换,会隐士转换类型
Nan:not a number转换数字失败
总结:
1。遇到字符串,+号就是拼接字符串,所有非字符串隐士转换为字符串
2。如果没有字符串,加号把其他所有类型都当作字符串处理,非数字类型隐式转换为数字,undefined特殊,因都没有定义值。所以事一个特殊数字Nan
3。如果运算符事逻辑运算符,短路符,返回就是短路时的类型,没有隐士转换

++和--
单目运算符,代表变量自增,自减
i++先用i,用完之后i在自增加1
++i ,i先自增,在使用i
单目运算符优先级高于双目运算符三元运算符:
条件表达式?真值:假值逗号操作符
js运行多个表达式写在一起比较运算符
console.log(300 == '300') //true 宽松比较
console.log(300==='300')//false 严格比较
使用宽松比较时,尽可能确保比较的类型相同,否则会引起隐士转换,隐士转换的规则不好把控
不知道类型是否一致,但是一定要相等,请使用===,!==

instanceof:判断是否指定类型
typeof:返回类型字符串
delete:删除一个对象(an object)或一个对象的属性,或者一个数组中的某个键值
in:如果指定的属性在对象内,则返回true
var a = new String('b')
console.log(a instanceof String) //true
console.log(typeof(a)) //obhect
console.log(String instanceof Object) //true
console.log(typeof(String)) //function

var trees = new Array('rebwood','bay','cedar','ok','maple')
console.log(0 in trees) //数组的索引
console.log('length' in trees) //true ,对象属性返回true  

2.生成器表达式

function *inc()
{let i = 0let j = 7while (true){yield i++if (!j--) return 100}
}
gen = inc()
for (i=0;i<10;i++)
{console.log(gen.next())
}
/*
{ value: 0, done: false }
{ value: 1, done: false }
{ value: 2, done: false }
{ value: 3, done: false }
{ value: 4, done: false }
{ value: 5, done: false }
{ value: 6, done: false }
{ value: 7, done: false }
{ value: 100, done: true }
{ value: undefined, done: true }
每次调用next()方法返回一个对象,这个对象包括2个属性value和done
values属性标识yield的返回值,done表示bool类型,done事false表示还有yield要执行
如果执行完或者return后done变成true
*/

 3.控制语句

js使用大括号构成语句块
es6之前语句块没有作用域的,从es6开始支持作用域,let只能在块的作用域内可见

function hello(){let a = 1var b = 2c = 3
}
if (1){let d = 4var e = 5f = 6if (true){console.log(d) //4 上层变量对下层可见console.log(e) //5console.log(f) //6g = 10var h = 11}
}
// console.log(a) //不可见
// console.log(b) //不可见
// console.log(c) //不可见
// console.log(d) //不可见
console.log(e) //var可见
console.log(f) //隐士声明,可见
console.log(g)
console.log(h)

 流程控制

if (cond1){pass
}
else if (cond2){pass
}
else{}
/*
条件的false等效
false,undefined,null ,0,Nan '',空数组,空对象
*/

switch (expression){case label_1:statements_1[break]case label_2:statement_2[break]default:statements_def[break]
}
/*
break可选,引出穿透问题,一定要在适当的case中使用break,否则匹配case后
会继续向下执行
*/

for(let i=0;i<10;i++){console.log(i)
}for (var x=0,y=9;x<10;x++,y--){console.log(x*y)}
for (let i=0;i<10;i+=3){console.log(i)
}

let x = 10
while (x--){console.log(x)
}
//条件满足,进入循环,条件为真继续循环do{console.log(x)
}while(x++<10)
//先进入循环,然后判断,为真就继续循环

for,,,,in循环

let arr = new Array(10,20,30,40)for (let x in arr){console.log(x) //返回索引
}for (let index in arr){console.log(`${index}:${arr[index]}`) //插入值返回value
}

let obj = {a:1,b:'python',c:true
}
// console.log(obj.c)
// console.log(obj['a'])
for (let x in obj){console.log(x) //return key
}
for (let key in obj)
{console.log(`${key}:${obj[key]}`)//return key:valye
}

let arr = [1,2,3,4,5]
let obj = {a:1,b:'python',c:true
}for (let x of arr){console.log(x)
}for (let key of obj){console.log(key) //异常不可以迭代字典
}

转载于:https://www.cnblogs.com/harden13/p/9252789.html

JavaScript之基础语法整理相关推荐

  1. JavaScript的基础语句整理

    JavaScript的基础语句整理 文章目录 JavaScript的基础语句整理 一.JavaScript的输出 二.JavaScript的基础语句 2.JavaScript语句的关键词 总结 大部分 ...

  2. JS:JavaScript编程语言基础语法总结

    JS:JavaScript编程语言基础语法总结 目录 常用基础语法 一.变量 1.声明变量var 二.语句 1.if判断语句 2.for循环语句 三.函数 1.定义一个函数 常用基础语法 consol ...

  3. JavaScript(1)——基础语法部分(CSDN)

    前言:本篇文章原文为我在语雀上的学习笔记Javascript(1)--基础语法部分 web 发展史 Mosaic,是互联网历史上第一个获普遍使用和能够显示图片的网页浏览器.于 1993年问世. 199 ...

  4. Javascript的基础语法(标识符/变量)

    1.书写方面的语法: 1)区分大小写 javascript中的一切,包括变量,函数名和操作符都是区分大小写的. eg:text和Text表示两种不同的符号. 2)行结束符 ;可以没有(为养成良好的写代 ...

  5. JavaScript核心基础语法

    1 什么是JavaScript? 是一种嵌入在网页中的程序段. 是一种解释型语言,被浏览器解释执行. 由Netscape发明,ECMA(欧洲计算机制造商协会)将其标准化. JavaScript借用了J ...

  6. Web前端开发笔记——第四章 JavaScript程序设计 第一节 JavaScript的基础语法

    目录 一.JavaScript的定义 二.代码的创建和使用 (一)内嵌JavaScript代码 (二)引用JavaScript文件 三.代码的注释 四.输出数据 (一)alert()弹出警告框 (二) ...

  7. markdown基础语法整理

    标题级别(一共六级) (建议在#后加一个空格比较标准) 通过在文字下方添加"="和"-",他们分别表示一级标题和二级标题. 在文字开头加上 "#&qu ...

  8. mysql基础语法整理

    语法汇总 数据库语法汇总(MYSQL) 序号 查询内容 示例() 备注 1 两表联查全查询(内连接) SELECT * from clothes_tab cl,color_tab co WHERE c ...

  9. 第六次前端培训(JavaScript的基础语法(二))

    3.6 运算符 算数运算符.递增和递减运算符.比较运算符.逻辑运算符.赋值运算符 3.7 控制语句 3.8 数组 3.8.1.数组定义 JS中定义数组的三种方式如下(也可先声明再赋值)∶ var ar ...

最新文章

  1. w​i​n​8​.1​无​线​上​网​ ​B​r​o​a​d​c​o​m​ ​8​0​2​.​1​1​n​ ​受​限​问​题
  2. RedHat7/CentOS7 压缩解压命令汇总
  3. 【Groovy】闭包 Closure ( 闭包作为函数参数 | 代码示例 )
  4. C# List的使用
  5. Android使用ConstraintLayout 加载RecyclerView数据显示不全
  6. 《JAVA与模式》之合成模式
  7. 如何为自己的项目在pycharm中设置debug?
  8. 计算机应用技术面试的礼仪和技巧,远程复试下,这些面试礼仪一定要注意!
  9. vnpy怎么创建策略并回测_基于vnpy、rqdata的回测打通历程
  10. OC CoreData简单使用
  11. [2019上海网络赛J题]Stone game
  12. 强悍修改WIN7的文件夹背景(修改DLL)
  13. php如何打开格式_php的文件格式是什么?如何打开php文件[graphic]
  14. 金蝶KIS标准迷你版专业版 K3 引出报表提示保存文件失败,原因:Automation错误
  15. 十进制转换为三进制数_python3实现
  16. IOS开发之——图片裁剪(82)
  17. docker minio部署作为shareX截图软件的图床
  18. C#工控上位机实例_工控学习,搞工控的到底什么是上位机,什么是下位机?
  19. 【】评价指标 mrr accuracy recall
  20. 紫书 统计字符1的个数

热门文章

  1. 蓝牙uuid是什么意思_小公主的吐槽非常好|米家蓝牙温湿度计2
  2. stackexchange.mysql_StackExchange.Redis加载Lua脚本进行模糊查询的批量删除和修改
  3. c语言 不显示dos窗口,运行DOS批处理不显示DOS窗口的方法
  4. java堆栈方法区_java 栈 ,堆, 方法区
  5. Java不满足的依赖异常_java – 新的缺失/不满足的依赖项WildFly 9中的错误
  6. java 实例化xpath_Java XPath示例教程
  7. linux中sudo命令_Linux中的Sudo命令
  8. kotlin泛型_Kotlin泛型
  9. 使用Kotlin的Android AsyncTask
  10. java 字符串面试_Java字符串面试问答