<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Halil</title>
    <description>The latest articles on DEV Community by Halil (@halilkaran).</description>
    <link>https://dev.to/halilkaran</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F848896%2Faf5c35a2-5a56-409f-8acb-4ea8bda67e19.jpeg</url>
      <title>DEV Community: Halil</title>
      <link>https://dev.to/halilkaran</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/halilkaran"/>
    <language>en</language>
    <item>
      <title>What is JavaScript?</title>
      <dc:creator>Halil</dc:creator>
      <pubDate>Mon, 09 May 2022 12:20:16 +0000</pubDate>
      <link>https://dev.to/halilkaran/what-is-javascript-25e</link>
      <guid>https://dev.to/halilkaran/what-is-javascript-25e</guid>
      <description>&lt;p&gt;JavaScript is a client-side as well as server side scripting language that can be inserted into HTML pages and is understood by web browsers. JavaScript is also an Object based Programming language&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are JavaScript Data Types?&lt;/strong&gt;&lt;br&gt;
Number&lt;br&gt;
String&lt;br&gt;
Boolean&lt;br&gt;
Object&lt;br&gt;
Undefined&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which company developed JavaScript?&lt;/strong&gt;&lt;br&gt;
Netscape is the software company who developed JavaScript.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are the features of JavaScript?&lt;/strong&gt;&lt;br&gt;
Following are the features of JavaScript:&lt;br&gt;
It is a lightweight, interpreted programming language.&lt;br&gt;
It is designed for creating network-centric applications.&lt;br&gt;
It is complementary to and integrated with Java.&lt;br&gt;
It is an open and cross-platform scripting language.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is JavaScript a case-sensitive language?&lt;/strong&gt;&lt;br&gt;
Yes, JavaScript is a case sensitive language.  The language keywords, variables, function names, and any other identifiers must always be typed with a consistent capitalization of letters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the difference between undefined and not defined in JavaScript?&lt;/strong&gt;&lt;br&gt;
In JavaScript, if you try to use a variable that doesn't exist and has not been declared, then JavaScript will throw an error var name is not defined and script will stop executing. However, if you use typeof undeclared_variable, then it will return undefined.&lt;/p&gt;

&lt;p&gt;Before getting further into this, let's first understand the difference between declaration and definition.&lt;/p&gt;

&lt;p&gt;Let's say var x is a declaration because you have not defined what value it holds yet, but you have declared its existence and the need for memory allocation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; var x; // declaring x
&amp;gt; console.log(x); //output: undefined 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here var x = 1 is both a declaration and definition (also we can say we are doing an initialisation). In the example above, the declaration and assignment of value happen inline for variable x. In JavaScript, every variable or function declaration you bring to the top of its current scope is called hoisting.&lt;/p&gt;

&lt;p&gt;The assignment happens in order, so when we try to access a variable that is declared but not defined yet, we will get the result undefined.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var x; // Declaration
if(typeof x === 'undefined') // Will return true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If a variable that is neither declared nor defined, when we try to reference such a variable we'd get the result not defined.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; console.log(y);  // Output: ReferenceError: y is not defined
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What is a “closure” in JavaScript? Provide an example&lt;/strong&gt;&lt;br&gt;
A closure is a function defined inside another function (called the parent function), and has access to variables that are declared and defined in the parent function scope.&lt;/p&gt;

&lt;p&gt;The closure has access to variables in three scopes:&lt;/p&gt;

&lt;p&gt;Variables declared in their own scope&lt;br&gt;
Variables declared in a parent function scope&lt;br&gt;
Variables declared in the global namespace&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var globalVar = "abc"; 

// Parent self invoking function 
(function outerFunction (outerArg) { // begin of scope outerFunction
    // Variable declared in outerFunction function scope 
    var outerFuncVar = 'x';    
    // Closure self-invoking function 
    (function innerFunction (innerArg) { // begin of scope innerFunction
        // variable declared in innerFunction function scope
        var innerFuncVar = "y"; 
        console.log(          
            "outerArg = " + outerArg + "\n" +
            "outerFuncVar = " + outerFuncVar + "\n" +
            "innerArg = " + innerArg + "\n" +
            "innerFuncVar = " + innerFuncVar + "\n" +
            "globalVar = " + globalVar);

    }// end of scope innerFunction)(5); // Pass 5 as parameter 
}// end of scope outerFunction )(7); // Pass 7 as parameter 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;innerFunction is closure that is defined inside outerFunction and has access to all variables declared and defined in the outerFunction scope. In addition, the function defined inside another function as a closure will have access to variables declared in the global namespace.&lt;/p&gt;

&lt;p&gt;Thus, the output of the code above would be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
outerArg = 7
outerFuncVar = x
innerArg = 5
innerFuncVar = y
globalVar = abc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What will be the output of the following code?&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var output = (function(x){

delete x;

return x; })(0);

console.log(output);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The output would be 0. The delete operator is used to delete properties from an object. Here x is not an object but a local variable. delete operators don't affect local variables.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are the advantages of JavaScript?&lt;/strong&gt;&lt;br&gt;
Following are the advantages of using JavaScript −&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Less server interaction&lt;/em&gt; − You can validate user input before sending the page off to the server. This saves server traffic, which means less load on your server.&lt;br&gt;
Immediate feedback to the visitors − They don’t have to wait for a page reload to see if they have forgotten to enter something.&lt;br&gt;
&lt;em&gt;Increased interactivity _− You can create interfaces that react when the user hovers over them with a mouse or activates them via the keyboard.&lt;br&gt;
_Richer interfaces&lt;/em&gt; − You can use JavaScript to include such items as drag-and-drop components and sliders to give a Rich Interface to your site visitors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How can you create an object in JavaScript?&lt;/strong&gt;&lt;br&gt;
JavaScript supports Object concept very well. You can create an object using the object literal as follows −&lt;/p&gt;

&lt;p&gt;1&lt;/p&gt;

&lt;p&gt;2&lt;/p&gt;

&lt;p&gt;3&lt;/p&gt;

&lt;p&gt;4&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var emp = {

name: "Daniel",

age: 23

};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;How can you create an Array in JavaScript?&lt;/strong&gt;&lt;br&gt;
You can define arrays using the array literal as follows-&lt;/p&gt;

&lt;p&gt;1&lt;/p&gt;

&lt;p&gt;2&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
var x = [];

var y = [1, 2, 3, 4, 5];

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What is the difference between Java &amp;amp; JavaScript?&lt;/strong&gt;&lt;br&gt;
Java JavaScript Java is an OOP programming language. JavaScript is an OOP scripting language. It creates applications that run in a virtual machine or browser. The code is run on a browser only. Java code needs to be compiled. JavaScript code are all in the form of text.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are the scopes of a variable in JavaScript?&lt;/strong&gt;&lt;br&gt;
The scope of a variable is the region of your program in which it is defined. JavaScript variable will have only two scopes.&lt;br&gt;
• Global Variables − A global variable has global scope which means it is visible everywhere in your JavaScript code.&lt;br&gt;
• Local Variables − A local variable will be visible only within a function where it is defined. Function parameters are always local to that function.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the purpose of ‘This’ operator in JavaScript?&lt;/strong&gt;&lt;br&gt;
The JavaScript this keyword refers to the object it belongs to. This has different values depending on where it is used. In a method, this refers to the owner object and in a function, this refers to the global object.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How does TypeOf Operator work?&lt;/strong&gt;&lt;br&gt;
The typeof operator is used to get the data type of its operand. The operand can be either a literal or a data structure such as a variable, a function, or an object. It is a unary operator that is placed before its single operand, which can be of any type. Its value is a string indicating the data type of the operand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the difference between Attributes and Property?&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Attributes&lt;/em&gt;-  provide more details on an element like id, type, value etc.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Property&lt;/em&gt;-  is the value assigned to the property like type=”text”, value=’Name’ etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;List out the different ways an HTML element can be accessed in a JavaScript code.&lt;/strong&gt;&lt;br&gt;
Here are the list of ways an HTML element can be accessed in a Javascript code:&lt;br&gt;
(i) &lt;em&gt;getElementById(‘idname’):&lt;/em&gt; Gets an element by its ID name&lt;br&gt;
(ii) &lt;em&gt;getElementsByClass(‘classname’):&lt;/em&gt; Gets all the elements that have the given classname.&lt;br&gt;
(iii)_ getElementsByTagName(‘tagname’): &lt;em&gt;Gets all the elements that have the given tag name.&lt;br&gt;
(iv) _querySelector():&lt;/em&gt; This function takes css style selector and returns the first selected element.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In how many ways a JavaScript code can be involved in an HTML file?&lt;/strong&gt;&lt;br&gt;
There are 3 different ways in which a JavaScript code can be involved in an HTML file:&lt;/p&gt;

&lt;p&gt;Inline&lt;br&gt;
Internal&lt;br&gt;
External&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are the ways to define a variable in JavaScript?&lt;/strong&gt;&lt;br&gt;
The three possible ways of defining a variable in JavaScript are:&lt;/p&gt;

&lt;p&gt;Var – The JavaScript variables statement is used to declare a variable and, optionally, we can initialize the value of that variable. Example: var a =10; Variable declarations are processed before the execution of the code.&lt;br&gt;
Const – The idea of const functions is not allow them to modify the object on which they are called. When a function is declared as const, it can be called on any type of object.&lt;br&gt;
Let – It is a signal that the variable may be reassigned, such as a counter in a loop, or a value swap in an algorithm. It also signals that the variable will be used only in the block it’s defined in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the difference between the operators ‘==‘ &amp;amp; ‘===‘?&lt;/strong&gt;&lt;br&gt;
The main difference between “==” and “===” operator is that formerly compares variable by making type correction e.g. if you compare a number with a string with numeric literal, == allows that, but === doesn’t allow that, because it not only checks the value but also type of two variable, if two variables are not of the same type “===” return false, while “==” return true.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the difference between null &amp;amp; undefined?&lt;/strong&gt;&lt;br&gt;
Undefined means a variable has been declared but has not yet been assigned a value. On the other hand, null is an assignment value. It can be assigned to a variable as a representation of no value. Also, undefined and null are two distinct types: undefined is a type itself (undefined) while null is an object.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How can you remove an element from an array? Or can you use delete to remove an element in an array or not?&lt;/strong&gt;&lt;br&gt;
First, we should not use delete to remove an element from an array. Because, delete removes only the value of the array element, not the entire element. So the index still have undefined. And the length does not change. delete is supposed to use on an Object to remove its property.&lt;/p&gt;

&lt;p&gt;The best way to remove an element is using splice method. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is instanceof in JavaScript?&lt;/strong&gt;&lt;br&gt;
This operator tests whether an object has the prototype property of a given constructor in its prototype chain. For example,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function Car(name)
 {
this.name = name;
}
var mycar = new Car('Honda');
mycar instanceof Car; //true
mycar instanceof Car; returns true since the mycar is constructed from the Car.

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;How can you get the list of all properties in an Object?&lt;/strong&gt;&lt;br&gt;
The easy way is using Object.keys(). This will return an array of given object’s own enumerable properties.&lt;/p&gt;

&lt;p&gt;If we want all properties, even not-enumerable properties also, we can use Object.getOwnPropertyNames().&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is shift() and push? How they are differing from each other?&lt;/strong&gt;&lt;br&gt;
”The shift() removes the first element from an array and return it.’’ On the otherhand, unshift() adds the given element at the start of an array.” The push() adds the given element at the end of the array. “And, pop() removes the last element from an array.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Number and String Objects in JavaScript?&lt;/strong&gt;&lt;br&gt;
JavaScript have Number and String objects to work with the primitive types number and string. We don’t need to explicitly create and use Number and String objects. JavaScript uses them to convert the primitive types to object when we are accessing any properties or methods on the primitive types. For example,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var str = 'Javascript';
str.length //10
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, we are declaring a variable str and assign a primitive string to that. When accessing the length property, the primitive types actually does not have the length property, but JavaScript compiler convert this primitive string to Object string, and the return the length property of it. To say more clearly, JavaScript returns new String(str).length. And this String object will be removed immediately from the memory once it returns the required value. So we won’t see any difference. Remember, declaring a string as var str = ‘Javascript’; is different from declaring as String object as&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
var str = new String('Javascript');. The latter will return object.
var str = new String('Javascript');
typeof str; //object
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What is prototype in javascript?&lt;/strong&gt;&lt;br&gt;
Every object has prototype in javascript, so you can add the property to an object based on prototype. You can create the instant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is undefined?&lt;/strong&gt;&lt;br&gt;
In javascript, undefined means, variable is declared but doesn’t contain value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is not defined?&lt;/strong&gt;&lt;br&gt;
Varaible not yet declared.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is closure?&lt;/strong&gt;&lt;br&gt;
variable have first its own scope, parent scope and global sope.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the difference for let and const?&lt;/strong&gt;&lt;br&gt;
let will scope for block level and const values never change.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is variable hoisting?&lt;/strong&gt;&lt;br&gt;
All the variable will go the top of the function and declare the variable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to create an Object?&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Object.Create();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What is a prompt box in JavaScript?&lt;/strong&gt;&lt;br&gt;
A prompt box is a box which allows the user to pass the input in provided text area ,prompt displays dialog box which will be contain “OK” and “Cancel” to process further after entering the input value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Explain equality in JavaScript&lt;/strong&gt;&lt;br&gt;
JavaScript has both strict and type–converting comparisons:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Strict comparison (e.g., ===)&lt;/em&gt; checks for value equality without allowing coercion&lt;br&gt;
_Abstract comparison (e.g. ==) _ checks for value equality with coercion allowed&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var a = "42";
var b = 42;

a == b;            // true
a === b;        // false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Some simple equalityrules:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;If either value (aka side) in a comparison could be the true or false value, avoid == and use ===.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If either value in a comparison could be of these specific values (0, "", or [] -- empty array), avoid == and use ===.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In all other cases, you're safe to use ==. Not only is it safe, but in many cases it simplifies your code in a way that improves readability.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What is IIFEs (Immediately Invoked Function Expressions)?&lt;/strong&gt;&lt;br&gt;
It’s an Immediately-Invoked Function Expression, or IIFE for short. It executes immediately after it’s created:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
(function IIFE(){
    console.log( "Hello!" );
})();
// "Hello!"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This pattern is often used when trying to avoid polluting the global namespace, because all the variables used inside the IIFE (like in any other normal function) are not visible outside its scope.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When should I use Arrow functions in ES6?&lt;/strong&gt;&lt;br&gt;
I'm now using the following rule of thumb for functions in ES6 and beyond:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Use function in the global scope and for Object.prototype properties.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use class for object constructors.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use =&amp;gt; everywhere else.&lt;br&gt;
&lt;em&gt;Why use arrow functions almost everywhere?&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Scope safety:&lt;/em&gt; When arrow functions are used consistently, everything is guaranteed to use the same thisObject as the root. If even a single standard function callback is mixed in with a bunch of arrow functions there's a chance the scope will become messed up.&lt;br&gt;
&lt;em&gt;Compactness:&lt;/em&gt; Arrow functions are easier to read and write. (This may seem opinionated so I will give a few examples further on).&lt;br&gt;
&lt;em&gt;Clarity:&lt;/em&gt; When almost everything is an arrow function, any regular function immediately sticks out for defining the scope. A developer can always look up the next-higher function statement to see what the thisObject is.&lt;/p&gt;

&lt;p&gt;**&lt;br&gt;
What are the differences between ES6 class and ES5 function constructors?**&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// ES5 Function Constructor
function Person(name) {
  this.name = name;
}

// ES6 Class
class Person {
  constructor(name) {
    this.name = name;
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Explain the difference between Object.freeze() vs const&lt;/strong&gt;&lt;br&gt;
const and Object.freeze are two completely different things.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;const applies to bindings ("variables"). It creates an immutable binding, i.e. you cannot assign a new value to the binding&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Object.freeze works on values, and more specifically, object values. It makes an object immutable, i.e. you cannot change its properties.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How do you check if a variable is an object&lt;/strong&gt;&lt;br&gt;
You can use typeof to determine if variable is an object, however bear in mind that null is actually an object! However null object is 'falsy' thus the following will work:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if(bar &amp;amp;&amp;amp; typeof bar === "object") {
    console.log('bar is object and is not null');
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Explain hoisting in JavaScript.&lt;/strong&gt;&lt;br&gt;
As some might not be familiar with the term 'hoisting' yet have the relevant experience this question could be asked indirectly&lt;/p&gt;

&lt;p&gt;In JavaScript function declarations ( function foo() {} ) and variable declarations ( var bar ) are 'hoisted' i.e. are silently moved to the very top of the scope. Consider the following code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(function() {
    console.log(bar); //returns 'undefined'
    //console.log(baz) // error: baz is not defined
    foo(); // outputs 'aloha' to the console

    //function declaration AND its body is hoisted
    function foo() {
        console.log('aloha');
    }
    //variable declaration is hoisted but value assignment stays here
    var bar = 1;
    baz = 2; //defines baz in global scope
})();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Explain prototypal/differential inheritance&lt;/strong&gt;&lt;br&gt;
Conceptually this is very simple: A new object can inherit properties of an old object.&lt;/p&gt;

&lt;p&gt;While JavaScript has always been a prototype-oriented language, tools to work with prototypes were somewhat missing. &lt;br&gt;
Object.create&lt;br&gt;
 used in the code snipped above has been added in ECMAScript 5&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Strict Mode in JavaScript&lt;/strong&gt;&lt;br&gt;
Strict Mode has been introduced as part of ECMAScript 5 and introduces new, restricted variant of JavaScript which has following aims:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Throws errors for actions that are rather silly but previously didn't throw an error&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Throws errors for potentially unsafe actions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Disables functions that are poorly thought out&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Potentially code in strict mode could run faster by eliminating mistakes that would make it difficult for JavaScript engines to perform optimizations&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>LINUX Questions!!!</title>
      <dc:creator>Halil</dc:creator>
      <pubDate>Wed, 27 Apr 2022 13:18:31 +0000</pubDate>
      <link>https://dev.to/halilkaran/linux-interview-questions-4i53</link>
      <guid>https://dev.to/halilkaran/linux-interview-questions-4i53</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is Linux?&lt;/strong&gt;&lt;br&gt;
Linux is an operating system based on UNIX and was first introduced by Linus Torvalds. It is based on the Linux Kernel and can run on different hardware platforms manufactured by Intel, MIPS, HP, IBM, SPARC, and Motorola. Another popular element in Linux is its mascot, a penguin figure named Tux.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the difference between UNIX and LINUX?&lt;/strong&gt;&lt;br&gt;
Unix originally began as a propriety operating system from Bell Laboratories, which later on spawned into different commercial versions. On the other hand, Linux is free, open source and intended as a non-propriety operating system for the masses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is BASH?&lt;/strong&gt;&lt;br&gt;
BASH is short for Bourne Again SHell. It was written by Steve Bourne as a replacement to the original Bourne Shell (represented by /bin/sh). It combines all the features from the original version of Bourne Shell, plus additional functions to make it easier and more convenient to use. It has since been adapted as the default shell for most systems running Linux.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Linux Kernel?&lt;/strong&gt;&lt;br&gt;
The Linux Kernel is a low-level systems software whose main role is to manage hardware resources for the user. It is also used to provide an interface for user-level interaction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the advantage of open source?&lt;/strong&gt;&lt;br&gt;
Open source allows you to distribute your software, including source codes freely to anyone who is interested. People would then be able to add features and even debug and correct errors that are in the source code. They can even make it run better and then redistribute these enhanced source code freely again. This eventually benefits everyone in the community.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are the basic components of Linux?&lt;/strong&gt;&lt;br&gt;
Just like any other typical operating system, Linux has all of these components: kernel, shells and GUIs, system utilities, and an application program. What makes Linux advantageous over other operating system is that every aspect comes with additional features and all codes for these are downloadable for free.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Describe the root account.&lt;/strong&gt;&lt;br&gt;
The root account is like a systems administrator account and allows you full control of the system. Here you can create and maintain user accounts, assigning different permissions for each account. It is the default account every time you install Linux.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is CLI?&lt;/strong&gt;&lt;br&gt;
CLI is short for Command Line Interface. This interface allows the user to type declarative commands to instruct the computer to perform operations. CLI offers greater flexibility. However, other users who are already accustomed to using GUI find it difficult to remember commands including attributes that come with it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is GUI?&lt;/strong&gt;&lt;br&gt;
GUI, or Graphical User Interface, make use of images and icons that users click and manipulate as a way of communicating with the computer. Instead of having to remember and type commands, the use of graphical elements makes it easier to interact with the system, as well as adding more attraction through images, icons, and colors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do you change permissions under Linux?&lt;/strong&gt;&lt;br&gt;
Assuming you are the system administrator or the owner of a file or directory, you can grant permission using the chmod command. Use + symbol to add permission or – symbol to deny permission, along with any of the following letters: u (user), g (group), o (others), a (all), r (read), w (write) and x (execute). For example, the command chmod go+rw FILE1.TXT grants read and write access to the file FILE1.TXT, which is assigned to groups and others.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are filenames that are preceded by a dot?&lt;/strong&gt;&lt;br&gt;
In general, filenames that are preceded by a dot are hidden files. These files can be configuration files that hold important data or setup info. Setting these files as hidden makes it less likely to be accidentally deleted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the pwd command?&lt;/strong&gt;&lt;br&gt;
The pwd command is short for print working directory command.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are the kinds of permissions under Linux?&lt;/strong&gt;&lt;br&gt;
There are 3 kinds of permissions under Linux:- Read: users may read the files or list the directory- Write: users may write to the file of new files to the directory- Execute: users may run the file or lookup a specific file within a directory&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are the different modes when using vi editor?&lt;/strong&gt;&lt;br&gt;
There are 3 modes under vi:- Command mode – this is the mode where you start in- Edit mode – this is the mode that allows you to do text editing- Ex mode – this is the mode wherein you interact with vi with instructions to process a file&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why we use LINUX?&lt;/strong&gt;&lt;br&gt;
LINUX is used widely because it is completely different from other operating systems where every aspect comes with something extra i.e. some additional features. Some of the major reasons to use LINUX are listed below&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It is an open-source operating system where programmers get the advantage of designing their own custom OS&lt;/li&gt;
&lt;li&gt;Software and the server licensing required to install Linux is completely free and can be installed on many computers as required&lt;/li&gt;
&lt;li&gt;It has low or minimum but controllable issues with viruses, malware, etc&lt;/li&gt;
&lt;li&gt;It is highly secured and supports multiple file systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Enlist some Linux distributors (Distros) along with its usage?&lt;/strong&gt;&lt;br&gt;
Different parts of LINUX say kernel, system environment, graphical programs, etc are developed by different organizations. LINUX Distributions (Distros) assemble all these different parts of Linux and give us a compiled operating system to be installed and used.&lt;/p&gt;

&lt;p&gt;There are around six hundred Linux distributors. Let us see some of the important ones&lt;/p&gt;

&lt;p&gt;UBuntu: It is a well known Linux Distribution with a lot of pre-installed apps and easy to use repositories libraries. It is very easy to use and works like a MAC operating system.&lt;br&gt;
Linux Mint: It uses cinnamon and mates desktop. It works on Windows and should be used by newcomers.&lt;br&gt;
Debian: It is the most stable, quicker and user-friendly Linux Distributors.&lt;br&gt;
Fedora: It is less stable but provides the latest version of the software. It has a GNOME3 desktop environment by default.&lt;br&gt;
Red Hat Enterprise: It is to be used commercially and to be well tested before release. It usually provides a stable platform for a long time.&lt;br&gt;
Arch Linux: Every package is to be installed by you and is not suitable for beginners.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Explain Linux Shell?&lt;/strong&gt;&lt;br&gt;
For executing any commands user uses a program known as the shell. Linux shell is basically a user interface used for executing the commands and communicating with Linux operating system. Shell does not use the kernel to execute certain programs, create files, etc. There are several shells available with Linux which includes the following&lt;/p&gt;

&lt;p&gt;BASH (Bourne Again SHell)&lt;br&gt;
CSH ( C Shell)&lt;br&gt;
KSH ( Korn Shell)&lt;br&gt;
TCSH&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the maximum length for a filename in Linux?&lt;/strong&gt;&lt;br&gt;
255 characters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to delete information from a file in vi?&lt;/strong&gt;&lt;br&gt;
The following commands are used to delete information from vi editors.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;x deletes a current character.&lt;/li&gt;
&lt;li&gt;dd deletes the current line.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>webdev</category>
      <category>opensource</category>
      <category>linux</category>
    </item>
    <item>
      <title>What is Jira?</title>
      <dc:creator>Halil</dc:creator>
      <pubDate>Sun, 17 Apr 2022 12:55:56 +0000</pubDate>
      <link>https://dev.to/halilkaran/what-is-jira-2kpl</link>
      <guid>https://dev.to/halilkaran/what-is-jira-2kpl</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Jira is a tool developed to help teams for project management, bug tracking, and issue tracking. In simple terms, it is an issue tracker. Jira is widely used by big companies in software development and software testing.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Which hosting options are available for Jira Software?&lt;/p&gt;

&lt;p&gt;There are three hosting options available: Atlassian Cloud, Server, and Data Center (Amazon Web Services (AWS) and Microsoft Azure).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;What is project key in Jira Software?&lt;/p&gt;

&lt;p&gt;A project key is a unique code for your project. Jira Software will automatically generate a short project key in accordance with your project name. However, if you want to specify this auto-generated key yourself, you can change it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡Tips:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A project key is a unique code for your project.&lt;/li&gt;
&lt;li&gt;Jira Software will automatically generate a short project key in accordance with your project name.&lt;/li&gt;
&lt;li&gt;However, if you want to specify this auto-generated key yourself, you can change it.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;

&lt;p&gt;Explain briefly what is backlog.&lt;/p&gt;

&lt;p&gt;A backlog is a list of issues that can be created for your project. You can create issues and sprints in the backlog. Then, you can add issues to a sprint so that your team can work on it.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JIe2-27x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lc2qigd3pes7f2pi7yxg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JIe2-27x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lc2qigd3pes7f2pi7yxg.png" alt="Image description" width="858" height="723"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
  </channel>
</rss>
