美文网首页
单信js——基础部分

单信js——基础部分

作者: 随风飞2019 | 来源:发表于2019-08-05 10:37 被阅读0次
  • 数据类型
    字符串
    数字
    布尔值
    undefined
    null
    数组
    函数
    对象
    变量根据值类型分类,包含两种:基本类型值和引用类型值。
    基本类型值就是简单的数据。而引用类型值指的更多是由多个值构造的复杂对象。

常见的基本类型有:Undefined(默认)、Null(回收资源)、Boolean、Number和String。
基本类型保存在栈内存中,在内存中占有固定大小的空间,是直接对值的操作。
基本类型的值复制拷贝后修改任意一个,对另一个不会造成影响。

引用类型的值则是保存在内存中的对象,保存在堆内存中。
变量中保存的实际上只是一个指针,这个指针指向内存中的另一个位置,由于引用类型大小不固定(比如数组是可以动态增加的),不能保存在栈内存当中,但是它们的内存地址是固定的存储在栈内存当中。当查询引用类型的变量时,就首先从栈中读取内存地址,然后“顺藤摸瓜”地找到保存在堆中的值。这种方式一般称为按“引用”访问,因为我们操作的不是实际值,而是被那个值所引用的对象。
当一个变量向另一个变量复制引用类型值时,把值分配到新空间,但是值的副本只是一个指向存储在堆中的一个对象,最终修改的是同一个对象。

typeof用来确定一个变量是字符串、数字、布尔,还是undefined。
语法为: var result = typeof abc;
instanceof用来确定一个引用类型是一个什么类型的对象。
语法为: var result = aaa instanceof Array/String/Function;

var a='hello';
console.log(typeof a); //string

var arr=[];
var fn=function(){};
console.log(arr instanceof Array); //true
console.log(fn instanceof Function); //true

  • 数组
    arr=新的数组;
    arr[下标]=新的值;
    arr.push();
    arr.unshift();
    arr.pop();
    arr.shift();

数组元素的删除
arr.splice(索引,删除的元素个数);
arr=null;

遍历数组【掌握】
for(var i=0; i<=arr.length; i++){ }
arr.forEach((value,index)=>{ });

  • 对象
    //定义对象
    var obj=new Object();
    var obj={};

//添加属性和方法
obj.属性名或方法名=值;
obj.name='张三疯';
obj.showName=function(){
console.log(this.name);
}

//使用属性和方法【掌握】
obj.name; //第一种,用.符号调用属性(最常用)
obj['name']; //第二种,动态属性

  • 函数
    //定义函数
    function 函数名(形式参数1,形式参数2,形式参数n){
    //函数体
    return 值;
    return [值,值]; //将返回值转换成数组即可返回多个值
    }

//定义匿名函数
var fn=function(){
};

//实例化一个函数对象
var fn=new Function();

//调用函数: 将函数的返回值放在函数的调用处
fn();

如果函数没有返回值,默认返回undefined
function foo() {
return
{ name: 'foo' };
}
foo(); // undefined
注意return语句的一个大坑,如果把return语句拆成两行,相当于return undefined,下面一句已经不执行了。

允许实参个数和形参个数不一致。
函数中的内置对象arguments,它只在函数内部起作用,并且永远指向当前函数的调用者传入的所有参数。
利用arguments,你可以获得调用者传入的所有参数。实际上arguments最常用于判断传入参数的个数。

  • 结构语句if else
    其中else语句是可选的。如果语句块只包含一条语句,那么可以省略{}
    省略{}的危险之处在于,如果后来想添加一些语句,却忘了写{},就改变了if...else...的语义,else后的第二句已经不在else的控制范围了

  • DOM文档对象模型
    //查(查询、获取)
    document.getElementById(ID);
    document.getElementsByName(NAME);
    document.getElementsByTagName(标签名);
    document.getElementsByClassName(类名);
    document.getAttribute('属性名'); //获取指定的属性值
    document.querySelector('h1'); //HTML5提供的新的DOM API

//新增
var h1=document.createElement('h1'); //在内存中创建一个DOM元素
div.appendChild(h1); //将内存中创建好的DOM元素添加到DIV上

//修改
div.className='新的值'; //修改属性值
div.innerHTML=HTML的值; //修改内容
div.innerText='';

//删除
div.removeChild();

//事件绑定【掌握】,事件三要素:事件源、事件类型、事件处理函数
<input type="button" onclick="fn()"/>

btn.onclick=function(){
}

btn.addEventListener('click',function(){
});

  • BOM浏览器对象模型
    BOM就是 window对象:
    window.alert();
    window.setTimeout(); //超时执行,只执行一次
    window.setInterval(); //按周期执行函数,无限次执行
    window.clearInterval(); //清除周期执行函数
    window.document //DOM对象
    window.history //历史对象
    window.location //地址栏对象
    window.onload=function(){};

  • JSON是一个轻量级的数据交换格式,天然就是JS的对象。
    JSON: {"name":"张三疯","age":18}
    数据包含在大括号内
    每一组数据分为键值对,用 : 隔开
    键名必须是一个字符串,用 " " 引起来
    值可以是任意类型,如:数字、字符串、布尔值、数组、对象
    多组数据之间使用 , 隔开
    规范数据格式,让数据在接收到以后使用便捷

1. 为什么要解析JSON?
因为JSON是一种数据交换格式,在正常使用时由后端将数据传到前端,前端接收到的数据会是一个字符串。
JSON的属性名称(和字符串类型的值)要求以“双引号”包裹
JS对象字面量:  {name:”小强”}
JSON:  {“name”:”小强”}

2. JSON的转换(解析)
1) 将JSON格式字符串转换成对象【掌握】
因为JSON 只是一种文本字符串
var 对象变量=JSON.parse(字符串)
用途:通常用于将接收到的数据(字符串形式)转换成对象进行使用

2) 将对象(任意对象或数组)转换成字符串【掌握】
var 字符串=JSON.stringify(对象或数组);
用途:通常用于将数据转换成字符串以后发送到服务器存储到数据库
var obj={"name":"张三疯","age":18};
//将对象转换成字符串
var str=JSON.stringify(obj);
console.log(typeof str,str);  //string {"name":"张三疯","age":18}

//将字符串转换成对象
var data=JSON.parse(str);
console.log(typeof data,data);

相关文章

  • 单信js——基础部分

    数据类型字符串数字布尔值undefinednull数组函数对象变量根据值类型分类,包含两种:基本类型值和引用类型值...

  • 单信js——4难点部分

    递归: 递归函数是指在函数内部调用函数自身。注意:递归的出口:什么情况下结束调用递归的入口:什么情况下调用自已 /...

  • JS基础部分

    把元素移除视线的办法 属性操作 元素.属性innerHTML通过元素.属性修改的是行内属性;修改className...

  • web前端 -- Day23 js高级

    js基础 JavaScript简称:JS JS分三个部分: ECMAScript标准---基础的语法 DOM D...

  • 前端相关大杂烩

    前端基础面试题(JS部分) 前端基础面试题(JS部分)学习 React.js 比你想象的要简单 原文地址:Lear...

  • 前端JavaScript面试技巧

    1-1 课程概述 要做什么?——讲解前端 JS 基础面试题 哪些部分?——JS 基础,JS-WEB-API,JS ...

  • Vue 入门2 基础篇

    [TOC] Vue.js 基础部分包括 Vue.js的组成 (template, script,style) 模板...

  • Android 程序员搞 web 之 webApi (十 二)

    Android 程序员搞 web 之 js基础(十 一) 难点 一、基础 1、js 分三部分 (1)、ECMASc...

  • JS交互微信之获取收货地址

    前言 本篇为JS交互微信系列篇的第二篇,上一篇《JS交互微信之基础配置》讲述了基础配置,本篇记录获取(共享)用户收...

  • js函数部分基础用法

    数组 var a=new Array(1,2,3,4,"55");//面向对象创建var b=[1,2,3,4,"...

网友评论

      本文标题:单信js——基础部分

      本文链接:https://www.haomeiwen.com/subject/sxkpdctx.html