0
点赞
收藏
分享

微信扫一扫

#小马的JavaScript日记#2.0 入门

1、什么是Javascript?

  • Javascript是一种弱类型脚本语言,其源代码不需经过编译,而是由浏览器解释运行,用于控制网页的行为
  • JavaScript语言实际上是两种语言风格的混合产物,即(简化版的)函数式编程+(简化版的)面向对象编程。借鉴C语言的基本语法,借鉴Java语言的数据类型和内存管理...
  • 一个合格的后端人员,必须要精通Javascript

    2、快速入门

    2.1、引入JavaScript

    1. 内部标签
    2. 外部引入
      ```html/xml
      <!-- 1.外部写法-->
      <script src="js/js.js"></script>

<!-- 2.行内写法:script标签内,写JS代码-->
<!-- 放在body的最下面或head的头部里-->
<!-- <script>-->
<!-- alert('hello,Icey');-->
<!-- </script>-->


### 2.2、基本语法入门
```html/xml
<body>
<script>
    // 1.定义变量:变量类型 变量名 = 变量值; eslink检查js强语法规范工具
    var num=1;
    var zzz=2;
    alert(num);
    // 2.条件控制
    if (2>1){
      alert("true");
    }
  </script>
</body>

注意:

  • JavaScript严格区分大小写
  • 没有要求强语法,但有工具ESlink可以检查JS语法规范
  • console.log(//var):在浏览器的控制台打印变量=sout
  • 浏览器调试
    image.png

2.3、数据类型与运算符

数值,文本,图像,音频,视频...

==变量==

  • 早期JS中变量都以var命名,ES6后可使用let和const区分局部变量和全局变量了,确保安全性
  • l==et和var作用域不同,var是函数作用域,而let是快作用域==。也就是说,在函数内声明了var,整个函数内都是有效的。
  • e.g.在for循环内定义了一个var变量,实际上其在for循环以外也是可以访问的;
    而let由于是块作用域,所以在块作用域内(比如说for循环内)定义的变量,在其之外是不可以被访问的,因此let用在for(let i;i<n;i++)是一种很推荐的写法!

    ==1.number:JS不区分小数和整数,统一用number表示==

    123 //整数
    123.1 //浮点数
    1.123e4 //科学计数法
    -99 //复数
    NaN //not a number
    Infinity // 表示无限大

    ==2.字符串==

    'abc'
    "abc"

    ==3.布尔值==

    true
    false

    ==4.逻辑运算==

    &&
    ||
    ! 取反

==5.比较运算==

= 赋值
== 等于 1==‘1’
=== 绝对等于 (类型一样&&值一样才为true)

注意:
1.浮点数问题

console.log((1/3) === (1-2/3)) //结果为false,因为会有精度的损失

2.NaN问题

NaN === NaN //结果为false,因为它与所有的数值都不相等,包括自己
isNaN(NaN) //只能通过这个方法来判断这个数是否是NaN

==6.null和undefined==

  • null 空
  • undefined 未被定义

==7.数组==

数组:在Java中即一系列相同类型的对象,但JS语法不需要类型相同

var arr = [1,2,3,7,'hello',null,true] //为了更好的可读性,推荐这种[ ]
new Array(1,2,3,7,'hello',null,true);

==8.对象==

// Java:Person person = new person(1,2,3,4,5);
    var person ={ //{
        name:"Icey",
        age:19, //属性之间逗号隔开
        tags:['js','java','web'] //lastone不需要逗号
    }

严格检查模式

'use strict',严格检查模式,预防JavaScript的随意性导致的一些问题

'use strict'
    //全局变量
    i = 1;
    // ES6 let

3、数据类型

1.正常字符串我们使用单引号或双引号包裹
2.注意转义字符

\'
\n
\t
\u####
\x41

3.多行字符串编写

var msg =
`   hello
    world
    你好
    你好呀
`

4.模版字符串

'use strict';
  let name = 'xiaoma';
  let msg = `你好呀,${name}`

运行如下:
image.png
5.字符串长度

console.log(str.length)

6.字符串的可变性,不可变
7.大小写转换

//这里是方法,不是属性了
student.toUpperCase()
student.toLowerCase()

8.student.indexOf('t')
9.substring字符串切片

//substring = [) 含头不含尾
student.substring(1)

3.2、数组

==Array可以包含任意的数据类型==

var arr = [1,2,3,4,5] //通过下标取值和赋值
arr[0]
arr[0] = 1;

1.长度

arr.length

注意:假如给arr.length赋值,数组大小就会发生变化;如果赋值过小,元素就会丢失
image.png
2.indexOf,通过元素获得下标索引

arr.indexOf(2)
1

字符串的“1”和数字1是不同的
==3.slice( )==
截取Array的一部分,返回一个新数组,类似于String中的substring
image.png
4,push和pop(尾部)

push():压入到尾部
pop():弹出尾部的一个元素

image.png
5.unshift和shift(头部)

unshift():压入到头部
shift():弹出头部的一个元素

image.png
6.排序——sort

arr
(3) ['B', 'C', 'A']
arr.sort()
(3) ['A', 'B', 'C']

image.png
7.元素反转 reverse

(3) ['A', 'B', 'C']
arr.reverse()
(3) ['C', 'B', 'A']

8.拼接——concat

(3) ['C', 'B', 'A']
arr.concat([1,2,3])
(6) ['C', 'B', 'A', 1, 2, 3]
arr
(3) ['C', 'B', 'A']

注意:concat并没有修改数组,只是会返回一个新的数组
函数返回值,不改变数组;返回的新数组可以定义个新数组arr2去接收
image.png
9.连接符——join
打印拼接数组,使用特定的字符串来连接

arr
(3) ['C', 'B', 'A']
arr.join('-')
'C-B-A'

10.多维数组

举报

相关推荐

0 条评论