js学习笔记,仅供自己使用!
1. 相关工具
需要安装的工具:
- nodejs
- Visual Studio Code
- Visual Studio Code 调用nodejs插件Node Exec 使用F8 运行代码
js开发官方文档
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guidenodejs
http://nodejs.cn/Visual Studio Code
https://code.visualstudio.com/2. 简述
js是一款动态的弱类型的脚本解释型语言
html css js 三大前端核心技术
html(超文本标记语言)
css(层叠样式表)
js:JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。
js实现网页动态化
1995年 js诞生
div css 布局
js 变化
es
ECMA262
是一款脚本程序设计语言标准
js 就是根据ECMA262标准实现的
v8
v8引擎 chrome出品
将js的代码编译成字节码,大大提升了网站的性能
nodejs
nodejs是服务器端运行js代码的程序
npm是软件管理工具,发布分享nodejs的库和源代码
nodejs 4.0 引入es6的语言特性
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时
采用事件驱动,非阻塞的异步io模型 高效
3. js的注释
js 使用/注释内容/ 或者 // 注释内容
或者
/***
*
*
*/
4. js常量和变量
常量的申明const,常量申明不可改变
变量申明三种方式
var a = 1
a = 1
let a = 1 推荐使用 es6引入
let适用于块作用域内
var 可以突破一般的块作用域,但是不能突破函数作用域
使用var 可以提升作用域的位置,一般在程序里定义var变量,会最优先提前到最前位置(会引发程序错乱,推荐使用let)
5. js的数据类型
js的常见类型:
- 数值number
- 布尔boolean(true | false)
- 字符串string
- null
- underfined
- object类型
js是动态弱类型测试,类型之间存在隐式类型转换
- 其他类型+字符串
全部转换为字符串,+代表字符串拼接 - 没有字符串,有数字
全部转换为数字,+代表做算符 - NaN数字类型
console.log(a=null+undefined) ==> NaN
console.log(a=null+undefined) ==> NaN - null,true,false 可以默认为数字类型
null=0 true=1 false=0 - 短路操作
console.log(a=null && true,typeof(a))
console.log(a=false && null,typeof(a))
console.log(a=false && ‘aa’,typeof(a))
console.log(a=true && ‘aa’,typeof(a))
console.log(a=false && null,typeof(a))
输出结果:
null object
false boolean
false boolean
aa string
false boolean
&&: 前者为真则为真
a && b:如果a是false,那么b不管是true还是false,都返回false,因此不用判断b了,这个时候刚好判断到a,因此返回a。
如果a是true,那么就要在判断b,和刚刚一样,不管b是true是false,都返回b。
||:
a || b:如果a是true,那么b不管是true还是false,都返回true。因此不用判断b了,这个时候刚好判断到a,因此返回a。
如果a是false,那么就要判断b,如果b是true,那么返回true,如果b是false,返回false
在js中:
以下内容会被当成false处理:”” , false , 0 , null , undefined , NaN
其他都是true。注意:字符串”false”也会被当做true处理,在未转型的情况下他是字符串,属于一个对象,所以是true。
6. js的字符串
1. 定义
- 单双引号定义
- 反引号定义
可以使用字符串占位替换(字符串差值)。es6支持
let name = ‘mykernel’
let age = 18
str = my name is ${ name },i am ${age}
console.log(str)
结果:
my name is mykernel,i am 18
2. str 转义
1 |
3. str 支持的方法
let a_str = ‘my name is mykernel,i am 18’
let b = ‘good’
console.log(a_str.charAt(3)) // 打印索引为3的字符
console.log(a_str[3]) // 打印索引为3的字符
console.log(a_str.toLocaleUpperCase()) // 转换为大写
console.log(a_str.concat(b)) // 拼接字符串b
console.log(a_str.slice(3)) // 切片
console.log(a_str.slice(3,10))
console.log(a_str.slice(-5,-3))
console.log(‘分割:’,a_str.split(‘.’))
console.log(‘截取1:’,a_str.substr(7,2)) // 字符串截取,从索引为7开始,截取2个字符
console.log(‘截取2:’,a_str.substring(7,15)) // 字符串截取,从索引为7开始到15
/定位字符串的索引/
console.log(a_str.indexOf(‘m’))
/字符串替换/
console.log(a_str.replace(‘mykernel’,’zaizai’))
/去除空格/
s = ‘ aaa ‘
console.log(s.trim())