var方法

js对数组的元素分割

时光总嘲笑我的痴心妄想 提交于 2019-11-27 05:31:14
不用方法(模拟方法) <script> var arr = ["hi",2,3,true,"hh","hi"]; var str =""; for(var i = 0; i < arr.length; i++){ str += arr[i] + "|"; } console.log(str); </script> 来源: https://www.cnblogs.com/sandraryan/p/11347570.html

2019前端面试题

。_饼干妹妹 提交于 2019-11-27 04:49:23
1.什么是面向对象?什么是面向过程? 1)面向对象的重点是 对象 。当解决一个问题的时候,面向对象会把事物抽象成对象,也就是说这个问题包含哪些对象,然后给这些对象赋一些属性和方法,让每个对象执行自己的方法,问题得到解决。 2)面向过程的重点是 过程 。解决一个问题的时候,面向过程会把问题拆分成一个个的函数和数据(方法的参数)。然后按照一定的顺序执行这些方法,执行完这些方法,问题得到解决。 2.什么是面向对象程序设计? 答:将计算机需要处理的问题都抽象成对象,在抽象成类,帮助人们实现对现实世界的抽象与数字建模。 面向对象的程序设计更加符合人的思考逻辑和对事物的处理。 3.什么是对象?什么是类? 答:对象是由类实例化出来的,类的实例称为对象。 类是具有相同特征和功能的对象的抽象。 类和对象的关系就好比模具和铸件的关系,类的实例化结果就是对象,而对象的抽象就是类。 4.什么是继承? 在面向对象的编程中,当两个类具有相同的特征(属性)和行为(方法)时,可以将相同的部分抽取出来放到一个类中作为父类,其他两个类继承这个父类。继承后的子类自动拥有了父类的部分属性和方法。 通过继承创建的新类被称为“子类”或“派生类” 被继承的类称为“基类”、“父类”或“超类” 比如: 狗{ 吠; } 牧羊犬 继承 狗{ 放羊; } 上面的例子中,狗类是父类,牧羊犬类是子类。牧羊犬类通过继承获得狗类的吠的能力

C# 匿名对象(匿名类型)、var、动态类型 dynamic

心已入冬 提交于 2019-11-27 04:43:11
原文: C# 匿名对象(匿名类型)、var、动态类型 dynamic 本文是要写的下篇《C#反射及优化用法》的前奏,不能算是下一篇文章的基础的基础吧,有兴趣的朋友可以关注一下。 随着C#的发展,该语音内容不断丰富,开发变得更加方便快捷,C# 的锋利尽显无疑。C# 语言从诞生起就是强类型语音,这一性质到今天不曾改变,我想以后也不会变。既然是强类型语音,那编写任一程序均要求满足下面的基本条件: 1、变量声明必须指明其类型 2、变量类型明确后,其类型在Runtime亦不能改变 代码如下: public class Student { public string Name { get; set; } public int Age { get; set; } public string Like { get; set; } } static void Main(string[] args) { int a = 10; string s = "abc"; Student student = new Student(); //下面出现编译错误,变量类型在声明后无法再变更 s = a; student = s; a = 10.1f; } 然而,在实际开发中我们经常面临如下几种常见问题: 1、在一个较大的程序程序中,只有一处或很少几处(不超过3处)需要用到 某个或某些类型(如上 Student)

2018前端面试题锦集

。_饼干妹妹 提交于 2019-11-27 03:52:00
转载地址: https://blog.csdn.net/wdlhao/article/details/79079660#commentBox javascript: JavaScript中如何检测一个变量是一个String类型?请写出函数实现 typeof(obj) === "string" typeof obj === "string" obj.constructor === String 请用js去除字符串空格? 方法一:使用replace正则匹配的方法 去除所有空格: str = str.replace(/\s*/g,""); 去除两头空格: str = str.replace(/^\s*|\s*$/g,""); 去除左空格: str = str.replace( /^\s*/, “”); 去除右空格: str = str.replace(/(\s*$)/g, ""); str为要去除空格的字符串,实例如下: var str = " 23 23 "; var str2 = str.replace(/\s*/g,""); console.log(str2); // 2323 方法二:使用str.trim()方法 str.trim()局限性:无法去除中间的空格,实例如下: var str = " xiao ming "; var str2 = str.trim();

JavaScript-ECMAScript

坚强是说给别人听的谎言 提交于 2019-11-27 03:51:20
javascript介绍 Web前端有三层: HTML:从语义的角度,描述页面 结构 CSS:从审美的角度,描述 样式 (美化页面) JavaScript:从交互的角度,描述 行为 (提升用户体验) 其中JavaScript基础又分为三个部分: ECMAScript:JavaScript的语法标准。包括变量、表达式、运算符、函数、if语句、for语句等。 DOM:文档对象模型,操作网页上的元素的API。比如让盒子移动、变色、轮播图等。 BOM:浏览器对象模型,操作浏览器部分功能的API。比如让浏览器自动滚动。 特点: 简单易用:可以使用任何文本编辑工具编写,只需要浏览器就可以执行程序。 解释执行( 解释语言 ):事先不编译、逐行执行、无需进行严格的变量声明。 基于对象:内置大量现成对象,编写少量程序可以完成目标 javascript语法 JavaScript对换行、缩进、空格不敏感。每一行语句末尾要加上分号,如果不加分号,压缩后将不能运行。 所有符号都是英文 js代码的引入 在body标签中放入 <script type="text/javascript"></script> 标签: <script type="text/javascript"></script> 变量和赋值 变量 var a=100; 命名规范:只能由英语字母、数字、下划线、美元符号$构成,且不能以数字开头

JS原型+原型链+设计模式

夙愿已清 提交于 2019-11-27 00:55:00
JavaScript 是一种基于对象的语言, JavaScript 中的所有对象,都具有 prototype 属性。 prototype 属性返回对象的所有属性和方法,所有 JavaScript 内部对象都有只读的 prototype 属性,可以向其原型中动态添加属性和方法,但该对象不能被赋予不同的原型。但是自定义的对象可以被赋给新的原型。 对象分为函数对象和普通对象,区分:凡是通过 new Function() 创建的对象都是函数对象,其他的都是普通对象。(Object ,Function 是JS自带的函数对象) 1.原型对象: prototype 在JS 中,函数对象其中一个属性:原型对象 prototype。普通对象是没有prototype属性,但有__proto__属性。 原型的作用就是给这个类的每一个对象都添加一个统一的方法,在原型中定义的方法和属性都是被所以实例对象所共享。   例:      var person = function(name){        this.name = name      };      person.prototype.getName = function(){//通过person.prototype设置函数对象属性        return this.name;      }      var zxj= new person(

js设计模式--模板方法模式

心不动则不痛 提交于 2019-11-26 23:06:23
前言 本系列文章主要根据《JavaScript设计模式与开发实践》整理而来,其中会加入了一些自己的思考 。希望对大家有所帮助。 文章系列 js设计模式--单例模式 js设计模式--策略模式 js设计模式--代理模式 js设计模式--迭代器模式 js设计模式--发布订阅模式 js设计模式--命令模式 js设计模式--组合模式 概念 模板方法模式是一种只需使用继承就可以实现的非常简单的模式。 模板方法模式由两部分结构组成,第一部分是抽象父类,第二部分是具体的实现子类。通常 在抽象父类中封装了子类的算法框架,包括实现一些公共方法以及封装子类中所有方法的执行顺序。子类通过继承这个抽象类,也继承了整个算法结构,并且可以选择重写父类的方法。 场景 一般用于可以抽取公共方法,例如泡咖啡和泡茶,我们可以抽取烧水 清洗杯具 冲泡等过程 优缺点 优点 可以复用公共方法,子类也不需要实现算法部分 例子 模板引擎 我们实现一个简单的模板引擎: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie

判断对象为空的情况

旧街凉风 提交于 2019-11-26 23:00:44
一、Object.getOwnPropertyNames()方法 此方法是使用Object对象的getOwnPropertyNames方法,获取到对象中的属性名,存到一个数组中,返回数组对象,我们可以通过判断数组的length来判断此对象是否为空 注意:此方法不兼容ie8,其余浏览器没有测试 var data = {}; var arr = Object.getOwnPropertyNames(data); alert(arr.length == 0);//true 二、使用ES6的Object.keys()方法 与4方法类似,是ES6的新方法, 返回值也是对象中属性名组成的数组 var data = {}; var arr = Object.keys(data); // 这里返回的是对象中的所有属性名数组 alert(arr.length == 0); // true 没有属性,数组就为空 来源: https://www.cnblogs.com/zhouyu0001/p/11334669.html

angular 之 jqLite

天涯浪子 提交于 2019-11-26 16:34:37
背景 节点类型 var NODE_TYPE_ELEMENT = 1; // element var NODE_TYPE_ATTRIBUTE = 2; // attribute var NODE_TYPE_TEXT = 3; // text var NODE_TYPE_COMMENT = 8; // comment var NODE_TYPE_DOCUMENT = 9; // document var NODE_TYPE_DOCUMENT_FRAGMENT = 11; // document fragment 对于 jqLite主要实现以下方法 addClass 实现原理 :主要是判断 setAttribute是否存在,借助 setAttribute 和getAttribute 方法实现 具体实现 :主要是借助 getAttribute 查找该元素原始的css 内容,然后查找这个css 内容中是否拥有新的class,如果没有就添加进去,然后把更新之后的css 内容 使用setAttribute 更新css 内容。 function jqLiteAddClass(element,cssClasses){ if(element && element.setAttribute){ // 获取原来的css var exisingClass = ('' + (element

什么?你还不会写JQuery 插件

瘦欲@ 提交于 2019-11-26 14:33:36
前言   如今做web开发,jquery 几乎是必不可少的,就连vs神器在2010版本开始将Jquery 及ui 内置web项目里了。至于使用jquery好处这里就不再赘述了,用过的都知道。今天我们来讨论下jquery的插件机制,jquery有着成千上万的第三方插件,有时我们写好了一个独立的功能,也想将其与jquery结合起来,可以用jquery链式调用,这就要扩展jquery,写成插件形式了,如下面就是一个简单扩展Jquery对象的demo: //sample:扩展jquery对象的方法,bold()用于加粗字体。 (function ($) { $.fn.extend({ "bold": function () { ///<summary> /// 加粗字体 ///</summary> return this.css({ fontWeight: "bold" }); } }); })(jQuery); 调用方式: 这是一个非常简单的扩展。接下来我们一步步来解析上面的代码。 一、jquery的插件机制 为了方便用户创建插件,jquery提供了jQuery.extend()和jQuery.fn.extend()方法。 1. jQuery.extend() 方法有一个重载。   jQuery.extend(object) ,一个参数的用于扩展jQuery类本身