JavaScript笔记——语法基础(不包括面向对象)

1.快速入门

1.1引入JavaScript

1.内嵌

<script>
	alert("hello world");
</script>

2.外部引入:

<script src=".js文件路径"></script>

1.2 数据类型

变量

var 

数组

Java的数据必须时相同类型的对象,js中不需要。

//保证代码的可读性,尽量使用 [] 
var arr = [1,2,3,'hello',null,true];

new Array(1,2,3,'hello',null,true);

取数组下标,如果越界了,就会

undefined

对象

对象是大括号,数组是中括号

每个属性使用逗号隔开,最后一个不需要添加

var person= {
            name:"Taoyi",
            age:21,
            hobby:['basketball','music','read','……']
        }

取变量的值

person.name
> "Taoyi"
person.hobby
> (4) ["basketball", "music", "read", "……"]

1.3 严格检查模式

<script>
'use strict';
    let i=1;
</script>

2.数据类型

2.1字符串

1.转义字符:

'\u####'-转义Unicode编码
'\x##'-转义Ascii字符

2.多行字符串:

var msg=`
        陶毅
        nb`

3.模板字符串

let msg=`陶毅
        nb`
let message=`你好呀,${msg}`

5.字符串长度

console.log(str.length)

6.字符串的可变性,不可变

在这里插入图片描述

7.substring

[ )
截取字符串的时候按下标左开右闭

2.2 数组

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

2.数组长度可变,给arr.length赋值,数组的大小就会发生变化。

3.slice()截取Array的一部分,返回新数组,类似于substring,切片。

4.push(),pop(),数组有栈的特性,栈顶在数组尾部。

5.unshift ( )压栈,shift()弹栈,栈顶在数组头部。

6.数组拼接,concat(),不修改数组,只返回一个新的数组。

7.支持多维数组

2.3 对象

若干键值对

1.对象声明

var 对象名={
    属性名:属性值,
    属性名:属性值,
    属性名:属性值,
    属性名:属性值
}

2.动态删除对象里的属性,通过delete

delete person.name

3.动态添加对象的属性,直接给对象的新属性赋值。

4.判断属性值是否在对象中, 属性名 in 对象名

'age' in person
true

5.判断一个属性是否是对象自身拥有,而不是来源于继承,对象名.hasOwnProperty(属性名)

person.hasOwnProperty('toString');
false
person.hasOwnProperty('age');
true

6.遍历数组,for-each循环

var age=[1,2,3,4,9,8,7,6,5];
age.forEach(function(value){
  console.log(value);  
})

2.4 Map和Set

var map=new Map();
map.set("key","value");

2.5 Iterator

遍历数组、Map、Set

var map =new Map(['time',60],['minute',30]);
for(let x of map){
    console.log(x);
}

3.函数

3.1定义函数

定义方式一:

function abs(x){
            if(x>=0){
                return x;
            }
            else {
                return -x;
            }
        }

定义方式二:

var abs=function(x){
	if(x>=0){
                return x;
            }
            else {
                return -x;
            }
}

调用函数

参数问题:javaScript 可以传递任意个参数,也可以不传递参数。

假设不存在参数,如何规避?

var abs=function(x){
    if(typeof(x)!=='number'){
        throw 'not a number';
    }
	if(x>=0){
                return x;
            }
            else {
                return -x;
            }
}

arguments关键字

函数调用时传递的所有参数作为一个数组,给arguments

var abs=function(x){
	for(let i=0;i<arguments.length;i++){
		console.log(arguments[i]);
	}
	if(x>=0){
                return x;
            }
            else {
                return -x;
            }
}

rest ——ES6引入的新特性,获取除了已经定义的参数之外的所有参数。

var abs=function(a,b,...rest){
    console.log(a);
     console.log(b);
     console.log(rest);
	if(x>=0){
                return x;
            }
            else {
                return -x;
            }
}

rest 参数只能写在最后面,必须使用…标识

3.2变量的作用域

规范:

由于我们所有的全局变量都会绑定在window上,如果不同的js文件,使用了相同的全局变量,就会冲突。

解决方法:

自定义唯一空间:

var Taoyi={};//唯一全局变量

//定义全局变量
Taoyi.name='Taoyi';

局部作用域 ——let用来定义局部作用域的变量

常量 const

3.3 方法

定义方法

var Taoyi={
         birth:2000,
         name:'陶毅',
         age:function () {
              var now=new Date().getFullYear();
              return now-this.birth;
          }
        }

apply

在js中可以控制this的指向

function getage() {
            var now=new Date().getFullYear();
            return now-this.birth;
        }
var Taoyi={
            birth:2000,
            name:'陶毅',
             age:getage()
        };

getage().apply(Taoyi,[]);

4. 内部对象

4.1 JSON

JSON ( JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式

  • 采用完全独立于编程语言的文本格式来存储和表示数据。

  • 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。

  • 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

JSON中的数据类型

  • number:和JavaScript的number完全一致;
  • boolean:就是JavaScript的truefalse
  • string:就是JavaScript的string
  • null:就是JavaScript的null
  • array:就是JavaScript的Array表示方式——[]
  • object:就是JavaScript的{ ... }表示方式。

JSON 规定字符集必须是UTF-8

在Javascript一切皆为对象,任何js支持的类型都可以用JSON来表示。

  • 对象用{}
  • 数组用[]
  • 键值对用 key:value

JSON字符串和JS对象的相互转化

var user={
            name:'Taoyi',
            age:21,
            sex:'男'
        }
        //对象转化为json字符串
var Jsoner=JSON.stringify(user);

        //json字符串转化为对象
var obj=JSON.parse('{"name":"Taoyi","age":21,"sex":"男"}');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Desperado1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值