JavaScript快速入门,基本语法,数据类型,函数,内部对象

什么是JavaScript

一门脚本语言,可以在浏览器上直接解释

ECMAScipt

一个JavaScript的标准,最新版本到es6

快速入门

<!--在script标签内,写javascript代码
    弹出helloword-->
<script>
    alert("helloworld");
</script>
也可以把JavaScript语句放在js文件中,再引用
 <script src="js/tc.js">
    </script>

也可在浏览器的控制台测试

alert(1)
undefined
console.log(3)

基本语法

定义变量

<script>
    //1.定义变量   : 变量类型 变量名 = 变量值;
    var num =1;        //不需要指定变量类型
    var name = "lyc";
</script>

条件控制

<script>
    if (2>1){
        alert("true");
    }
    else {
        alert("false");
    }
</script>

数据类型

  1. 数值 js不区分小数和整数

    number:

    123 //整数
    123.1 //浮点数
    1.123e3 //科学计数法
    NaN    //不是数值
    Infinity    //无限大
    
  2. 字符串

  3. 布尔值 true,false

  4. 逻辑运算 && || !

  5. 比较运算符

    = 赋值
    == 等于 值一样 类型不一样也为true
    === 绝对等于 类型一样 值一样才为true
    
    NaN === NaN 结果为false
    只能通过isNaN() 判断
    
  6. null和undefined 空和未定义

  7. 数组 一些列相同类型的对象

    var arr = [1,2,3,4,5]
    数组越界会underfined
    
  8. 对象 大括号

    var person = {
                name: "lyc",
                age: 3,
                tags: [3,23,23,23]
            }
    

浮点数问题

精度损失:   1/3 === 1-2/3 的结果为false
尽量避免使用浮点数进行运算

严格检查模式

预防js随意性产生的问题,局部变量建议使用let定义

‘use strict’

数据类型

字符串

console.log("a");
console.log("a\"");  转义字符
/u4e2d Ascll字符
let name = "lyc";
        let msg='你好呀,${name}'  //模板字符串
str.length   字符串长度
str.toUpperCase(); 大写
str.toLowerCase(); 小写
str.indexof();
str.substring(a,b)  从坐标a开始到b结束,不包括b

数组

可以包含任意的数据类型

var arr = [1,2,3,4,5,6] 
arr.length 数组的长度 给arr.length  赋值 数组的大小会变化
赋值过小 数据会丢失
arr.indexOf(2)   获得下标索引
arr.slice()   截取数组的一部分 返回一个新数组
arr.push  pop()
arr.unshift() shift() 在头部增加/删除元素
arr.sort();  排序
arr.reverse(); 元素反转
arr.concat();数组拼接返回新的数组  并不影响原来的数组
arr.join("-"); 打印拼接数组,使用特定的字符串连接
var array=[3,4,5]
for (var x of array){
    console.log(x);
}

对象

var person = {
    name: lyc,
    face: shuaiqi
}
person.name= xhc ; 对象赋值
使用一个不存在的对象属性,不会报错
delete person.name 动态的删减对象属性
person.asd=xhc  ; 动态添加对象属性 直接给新的属性添加至
person.hasOwnProperty("name")  判断一个属性是否是这个对象自身拥有的

Map和Set集合(ES6新特性)

var map=new Map([['tom',100],['33','90'],[323,23]]);
 var name= map.get('tom');
 console.log(name);
map.set('admin',123456);   //往map里增加值

Set:无序不重复的集合,可以用来去重

var set=new Set([3,1,1,3,2,3,2]);
console.log(set);
set.add();
set.delete();
set.has()  set集合是否含有属性

遍历Map,Set

var map =new Map([['TOM',100],['lyc',200],['xhc',300]]);
for (let x of map){
    console.log(x)
}
var set =new Set(5,6,7);
        for (let x of set){
            console.log(x);
        }

函数

类似java的方法,一旦执行到return代表函数结束

如果没有执行return,函数执行完会返回undefined

定义

//绝对值函数
//可以传任意个参数,但只有相应的参数
function abs(x){
    if(x>0){
        return x;
    }
    else{
        return -x;
    }
    var abs1 = function (x){
            if(x>0){
                return x;
            }
            else{
                return -x;
            }
        }
if (typeof x!=='number'){
    throw 'Not a number';
}  //参数判断
arguments.length()  //代表传递进来的参数的长度,arguments是一个数组,包含了所有传递进来的参数
rest  //代表已经定义的参数之外的所有参数

变量的作用域

  1. 函数体中声明的变量,在函数体外不可以使用
  2. 函数体可以使用外部定义过的变量
  3. 函数查找变量从自身开始,再到外部函数或外部,由内向外查找
  4. JavaScript执行引擎可以提升声明,但不提升变量的赋值
  5. 所有的全局变量,都会自动绑定在windows对象下

规范

//唯一全局变量
var lycapp={};
lycapp.name='lyc';
lycapp.add = function (a,b){
    return a+b;
}

//把自己的代码全部放入自己定义的唯一空间名字中,降低全局变量冲突的概率

局部作用域 let

常量 const ES6语法

方法

放在对象里面的函数

var lycapp={
	name:'lyc';
    add : function (a,b){
    return a+b;
}
}

this默认指向调用他的对象

内部对象

标准对象

  • number
  • string
  • boolean
  • object
  • function
  • undefined

Date

var  date=new Date();
date.getFullYear();//年
date.getMonth();//月   月份从0到11
date.getDate();//日
date.getDay();//周几
date.getTime();//时间戳
date1=new Date(date.getTime());//时间戳转为本地时间
date1.toLocalString();
date1.toGMTString();

JSON

JavaScript对象都可以用JSON表写

  • 对象用{}
  • 数组用[]
  • 键值对用key:value
var user={
    name: "lyc",
    email: "25533@qq.com",
    sex: '男'
}
//对象转换为JSON字符串
var JSONUSer=JSON.stringify(user);

//JSON字符串转化为对象
JSON.parse(JSONUSer);

JSON和JS对象之间的区别

var obj={a: 'hello',b: 'hello'} //JS对象
var Json='{"a": "hello","b": "hello"}'  //JSON字符串
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值